我有一个程序可以创建一个JFrame
并使其可见。无论如何知道JFrame
何时完全绘制且可见?现在正在使用一种冒险的“等待和祈祷”方法。了解JFrame何时完全绘制
0
A
回答
2
你可以add a WindowListener
到JFrame
;那么当windowOpened
被触发时,窗口应该是可见的。
0
您也可以尝试覆盖Component.addNotify()
,我相信在组件绘制时会调用它。请务必致电super.addNotify()
。
public void addNotify() {
super.addNotify();
// after displayed handling
}
1
回答“如何产生,并专门等待Swing线程执行”的问题:
可以使用SwingWorker。
编辑 阅读您的评论再一次我看到了一个潜在问题的声明:
我在一个线程创建一个JFrame,然后我想这线程等待对JFrame出现。
您是否在此主题中调用您的frame.setVisible(true)
?如果是这样,你应该提醒你Swing绘画应该都在AWT EventQueue上处理。这是SwingWorker
进来的地方。
但是,您可能需要的'yield and wait'是等待/通知操作。在您的调用线程可以等待一个共享对象:
synchronized (frameShowingLock) {
frameShowingLock.wait()'
}
然后在你的SwingWorker,或任何你叫frame.setVisible(真),你可以通过使用notifyAll()
方法来唤醒你的等待线程完成该过程:
synchronized (frameShowingLock) {
frameShowingLock.notifyAll()'
}
相关问题
- 1. 了解DataBinding何时完成
- 2. 强制绘制一个jframe?
- 3. JFrame没有完全关闭
- 4. 如何完全关闭/删除JFrame
- 5. 了解如何绘制ROC曲线
- 6. 绘制JPane在JFrame中
- 7. 在JFrame中绘制网格
- 8. 在JFrame中绘制Graphics2D
- 9. JFrame菜单正在绘制完毕,图形在JFrame上消失调整大小
- 10. Swing Popup菜单没有完全绘制
- 11. highcharts线没有完全绘制
- 12. 绘制的图像完全是出于
- 13. 为什么Swing在这里推迟'全面绘制'JFrame?
- 14. 当应用程序Window完全绘制时是否有事件?
- 15. Grails控制器映射,完全误解
- 16. jqplot完全重绘图
- 17. 如何在JFrame上绘画
- 18. 为什么我的JFrame不能绘制?
- 19. 基本的Java Swing JFrame重新绘制
- 20. JFrame重新绘制()单个组件
- 21. 在jframe游戏中绘制图像
- 22. 在JFrame Swing中绘制像素
- 23. 使用ArrayList绘制图像(JPanel,JFrame)
- 24. Janel内的JFrame在JFrame的菜单顶部绘制
- 25. 绘制全屏Quad?
- 26. 了解qthread的完成时间
- 27. 尝试在JFrame上绘制精灵时出现drawImage错误
- 28. 为什么我的JFrame内容有时不被绘制?
- 29. 在Jframe上绘图
- 30. JFrame全屏Java
哦,等等,你可能想要一个听众或一些这样的事情。删除... – 2009-06-30 18:12:02
它的东西,我讨厌投票,因为我只是移动我的其他地方等待... – Sandro 2009-06-30 18:13:08