【问题标题】:Java sleep acts too earlyJava sleep 行动太早了
【发布时间】:2013-11-02 15:29:44
【问题描述】:

在我想要它之前就开始睡眠......

所以我有一个带有事件鼠标单击的按钮以显示 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 中进行睡眠,但仍然无法按我想要的方式工作。请帮忙!!

【问题讨论】:

    标签: java swing sleep


    【解决方案1】:

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

    相反,您可以使用 Swing Timer 来安排事件在 2 秒内发生。阅读 How to Use Swing Timers 上的 Swing 教程部分了解更多信息。

    【讨论】:

    • 对不起对不起我真的是java新手,这似乎是我想要的,但我真的不明白如何使用,如果你能给我一个例子来说明我的情况好吗??
    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2013-02-08
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多