我想将面板涂成蓝色,然后等待五秒钟,然后再做其他事情。
现在,我有以下一段代码,希望可以完成我想做的事情。这里是:

JPanel somePanel = getSomePanel();
somePanel.setBackground(Color.BLUE);
Object lock = new Object();
synchronized (lock) {
    try {
        lock.wait(5000);
    }
    catch (InterruptedException exc) { }
}
// Do other stuff


但是,它会等待五秒钟,然后将组件涂成蓝色。


为什么要先等待,然后再涂成蓝色,而不是相反? (我想这与Swing机制有关...?)
如何“更改订单”?

最佳答案

不要在GUI事件处理程序中等待-这样会阻止消息的处理。重新绘制请求。

等待锁时,GUI没完成。

09-08 03:36