首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -两个repaint()函数-第一个函数不会立即重新绘制

Java -两个repaint()函数-第一个函数不会立即重新绘制
EN

Stack Overflow用户
提问于 2013-05-06 22:46:45
回答 2查看 137关注 0票数 0

我的代码:

代码语言:javascript
复制
...
this.mainWindow.desk.repaint();
....
function();
...
this.mainWindow.desk.repaint();
...

第一次重绘不会立即处理,而是等待第二次重绘,然后两次重绘都会一起处理。我怎么能在不等待第二次重绘的情况下立即进行重绘呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-06 22:50:40

在另一个线程上启动您的函数。如果这不可行,请查看JComponent的paintImmediately方法。

票数 1
EN

Stack Overflow用户

发布于 2013-05-06 22:50:49

repaint仅将绘制请求放在事件调度线程的工作队列上。由于您可能正在Event Dispatch Thread (在事件处理程序内)上运行代码,因此会阻塞对进一步工作项的处理。然后,您的代码将向队列中添加三个单独的工作项:

重绘请求;重绘请求调用function;

  • another

如果你想绘制一些东西,让它停留一段时间,然后再绘制其他东西,那么你需要用Swing的Timer来计划第二个图像的绘制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16401263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档