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