我在一段时间后更新文本字段。
这是我的代码:
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();
我的应用程序使用此代码非常慢。
答案 0 :(得分:2)
修改:这不是一个正确的解决方案。
你需要把它扔到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。
答案 1 :(得分:0)
计时器代码看起来不吉利。在不知道更多细节的情况下,唯一可能的罪魁祸首是
update.addActionListener(task);
什么是update
以及触发器/任务的频率(除了通过计时器触发的执行之外)?