在一定间隔后更新文本字段

时间:2010-02-18 16:07:08

标签: java swing

我在一段时间后更新文本字段。

这是我的代码:

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();

我的应用程序使用此代码非常慢。

2 个答案:

答案 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以及触发器/任务的频率(除了通过计时器触发的执行之外)?