Java睡眠行为太早

时间:2013-10-24 04:51:59

标签: java swing sleep

睡觉开始之前,我希望它......

所以我有一个这个按钮,点击事件鼠标,以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和ive尝试:

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){
.......
}

但是在哪里我放置试睡眠它等待2秒才显示数字然后继续使用if,我甚至尝试了睡眠中的if但仍然没有按照我想要的方式工作。请帮助!!

1 个答案:

答案 0 :(得分:4)

不要从侦听器内部调用Thread.sleep()。代码将在Event Dispatch Thread上执行,导致GUI冻结。

相反,您可以使用Swing Timer来安排事件在2秒内完成。有关详细信息,请阅读How to Use Swing Timers上的Swing教程中的部分。