我有一個程序可以創建一個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