Thread.pause的错误

Fuu*_*chi -1 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");
}
Run Code Online (Sandbox Code Playgroud)

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

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

非常感谢你们.

Mar*_*nik 5

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

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

  • 我想你应该通过调用适当的方法来禁用它们. (2认同)