2011-03-04 54 views
0

我有用Java擴展JDialog類的class InfoDialog。我在使用信息文本建立SSH連接(5或6秒)時顯示InfoDialog。如何把重點放在InfoDialog上,用戶不能做任何事情,直到InfoDialog失控?關注JDialog

+0

你是說,鎖定整個操作系統?我不知道這是否可能... – bluefoot 2011-03-04 10:43:09

+1

@bluefoot:系統模式對話框可以做到這一點,但不是純Java(謝天謝地,IMO) – Nivas 2011-03-04 13:02:14

+0

@Nivas對不起。我的意思是:我不知道這是純Java的可能性:) – bluefoot 2011-03-04 18:12:16

回答

4

我不認爲你可以鎖定整個操作系統,但你可以通過設置模式來鎖定你的應用程序。見API of JDialog或做這樣的事情:

JDialog info = new JDialog(); 
info.setModal(true); 
+0

Java 6增加了創建對話模式的靈活性。看到我的答案。 – Nivas 2011-03-04 13:00:14

2

我認爲你正在尋找Modality

形態定義新的模式模型是否

使開發人員範圍,或限制,對話框的模態阻止。

以下模式類型支持的Java SE 6:
非模態型 - 而 它是可見的無模式對話框 不會阻止任何其他窗口。
文檔模式類型 - 文檔 - 模式對話框阻斷來自同一文檔的所有 窗口,除了從它的子層次 窗口。在 這個上下文中,文檔是一個共享 共同祖先的窗口的層次結構,稱爲文檔 根,這是最接近的祖先 沒有所有者的窗口。
應用模態型 - 一個 應用模式對話框塊 全部來自同一個應用程序窗口, 除了從其子 層次窗口。如果在瀏覽器環境中啓動了幾個小應用程序 ,則允許 瀏覽器將它們作爲單獨的應用程序或作爲 對待它們的單個應用程序 。此行爲是 實現相關。
工具包模態型 - 一個工具箱模態 對話框塊,在同一工具包運行 所有窗口,但其子層次窗口 。如果啓動了幾個 小程序,則所有這些程序都使用相同的工具包運行 。因此,從 小應用程序中顯示的工具包模式對話框可能會影響其他小應用程序和 瀏覽器實例 的所有窗口,這些窗口嵌入此工具包的Java運行時環境 。

您可以定義模式,同時creation

JDialog dialog = new JDialog(owner, Dialog.ModalityType.DOCUMENT_MODAL); 

later

dialog.setModalityType(type) 

*還有一個層次:系統級形態,但這是不可能的,只是Java的。