一段时间后,我将更新文本字段。
这是我的代码:
ActionListener task = new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
tip1.setText(ad1.tip1());
tip2.setText(ad1.tip2());
tip3.setText(ad1.tip3());
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
};
new javax.swing.Timer(1000, task).start();
我的应用程序使用此代码的速度非常慢。
最佳答案
编辑:这不是一个正确的解决方案。
您需要将其扔到EDT上。除EDT之外,不应在其他任何线程上更改Swing接口。
try {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
tip1.setText(ad1.tip1());
tip2.setText(ad1.tip2());
tip3.setText(ad1.tip3());
} catch (Exception e1) {
e1.printStackTrace();
}
});
}
Sun在此主题上有一些很棒的tutorials。