我有一個GUI,其中有幾個JDialogs,其中2個或3個是「基本」大的GUI,因此應該是「永遠不要在上面」其他人(小人)。如何使一個JDialog永遠不在最上面(在一個應用程序中,而不是系統範圍內)
我認爲在其他JDialog上使用「always on top」會是一個解決方案,但並不完全是我想要實現的。
任何提示歡迎,謝謝!
我有一個GUI,其中有幾個JDialogs,其中2個或3個是「基本」大的GUI,因此應該是「永遠不要在上面」其他人(小人)。如何使一個JDialog永遠不在最上面(在一個應用程序中,而不是系統範圍內)
我認爲在其他JDialog上使用「always on top」會是一個解決方案,但並不完全是我想要實現的。
任何提示歡迎,謝謝!
如果您使用1.6,也許玩ModalityType和ModalExclusionType將幫助你。請注意,modalitytype和modalexclusiontype僅在1.6以上版本可用
聽起來像您的大型JDialogs可能需要是JFrames。
另一種選擇:使用JDesktopPane並使用JInternalFrame。
第三種選擇:使用分層窗格來控制項目的排序。
**不起作用。我要創建的「小」對話框只與3個JFrame中的一個相關聯,所以將僅僅是這個JFrame的「始終在最上面」,而不是其他的。 ** JDesktopPane **是一個有效的選項,但它違背了僅使用JDialog的想法(它增加了一個「包含」JFrame)。 ** Layered Panes **,我認爲它不能像這樣使用。 JDialogs不能添加到Layered窗格中(儘管最接近的東西就是JDesktopPane)。經過一番研究,JDialogs的Z排序似乎並未得到Java的很好的支持,因爲它主要依賴於平臺。 – Bastien 2011-06-20 01:25:49
ModalityType意味着某種級別的阻塞,但是我的對話框是無模式的,這個問題與模態無關:在任何情況下,對話框都不應該被阻塞。使用JFrames **的 – Bastien 2011-06-16 05:08:10