我的代码:
...
this.mainWindow.desk.repaint();
....
function();
...
this.mainWindow.desk.repaint();
...第一次重绘不会立即处理,而是等待第二次重绘,然后两次重绘都会一起处理。我怎么能在不等待第二次重绘的情况下立即进行重绘呢?
发布于 2013-05-06 22:50:40
在另一个线程上启动您的函数。如果这不可行,请查看JComponent的paintImmediately方法。
发布于 2013-05-06 22:50:49
repaint仅将绘制请求放在事件调度线程的工作队列上。由于您可能正在Event Dispatch Thread (在事件处理程序内)上运行代码,因此会阻塞对进一步工作项的处理。然后,您的代码将向队列中添加三个单独的工作项:
重绘请求;重绘请求调用function;
如果你想绘制一些东西,让它停留一段时间,然后再绘制其他东西,那么你需要用Swing的Timer来计划第二个图像的绘制。
https://stackoverflow.com/questions/16401263
复制相似问题