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

这是我的代码:

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

10-06 12:44