0

睡眠在我想要之前就开始了……

所以我有一个带有事件鼠标单击的按钮以显示 m[0][0] 中的数字,然后继续执行 if

private void m00MouseClicked(java.awt.event.MouseEvent evt) {     

m00.setText(String.valueOf(m[0][0]));
c=c+1;
if(c==2){
.......
}

但我希望按钮显示数字 m[0][0] 然后等待几秒钟,然后继续执行 if 并且我尝试过:

private void m00MouseClicked(java.awt.event.MouseEvent evt) {     

m00.setText(String.valueOf(m[0][0]));
c=c+1;
try {
    Thread.sleep(2000);
} catch(InterruptedException ex) {
    Thread.currentThread().interrupt();
}
if(c==2){
.......
}

但是无论我在哪里放置 try-sleep,它都会等待 2 秒,然后再显示数字并继续执行 if,我什至尝试在 if 中进行睡眠,但仍然无法按我想要的方式工作。请帮忙!!

4

1 回答 1

4

不要从侦听器内部调用 Thread.sleep()。代码将在导致 GUI 冻结的事件调度线程上执行。

相反,您可以使用 Swing Timer 来安排事件在 2 秒内发生。阅读 Swing 教程中有关如何使用 Swing 计时器的部分以获取更多信息。

于 2013-10-24T04:54:05.470 回答