Thread.pause的错误

时间:2013-11-22 10:48:12

标签: java swing timer event-dispatch-thread thread-sleep

这是我的代码:

private void jButton5MouseClicked(java.awt.event.MouseEvent evt) {                                      
    this.jButton5.setText("VietNam");
    try {
        Thread.sleep(10000);
    } catch (InterruptedException ex) {
        Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    this.jButton5.setText("Ha Noi");
}

我希望按钮显示“越南”,一分钟后它将变为“Ha Noi”。 但是在我的代码中,我的按钮没有显示任何内容,1分钟后显示“Ha Noi”,没有“越南”出现一秒钟。

我该如何解决?我不想使用swing.Timer,因为它无法完全暂停系统。如果有办法解决它,请告诉我。

非常感谢你们。

1 个答案:

答案 0 :(得分:5)

您已在GUI线程上执行了Thread.sleep(),这阻止了它进一步更新GUI。

在GUI中安排未来操作的最便捷方法是使用javax.swing.Timer,在Javadocs中查看。