簡體   English   中英

專注於JDialog

[英]Put focus on JDialog

我有InfoDialog類,它擴展了Java中的JDialog類。 通過信息文本建立SSH連接(5或6秒)時,我顯示InfoDialog。 如何將焦點放在InfoDialog上,直到InfoDialog失控,用戶才能做其他事情?

我認為您無法鎖定整個操作系統,但可以通過將其設置為模式來明確鎖定您的應用程序。 請參閱JDialogAPI或執行以下操作:

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

我認為您正在尋找Modality

模態定義是否

新的模式模型使開發人員可以范圍或限制對話框的模式阻止。

Java SE 6支持以下模式類型:
無模式類型 -無模式對話框在可見時不會阻止任何其他窗口。
文檔模式類型 —文檔模式對話框會阻止同一文檔中的所有窗口,但其子層次結構中的窗口除外。 在這種情況下,文檔是共享公共祖先的窗口層次結構,稱為文檔根,它是沒有所有者的最近祖先窗口。
應用程序模式類型 -應用程序模式對話框將阻止來自同一應用程序的所有窗口,但其子層次結構中的窗口除外。 如果在瀏覽器環境中啟動了多個小程序,則允許瀏覽器將它們視為單獨的應用程序或單個應用程序。 此行為取決於實現。
工具箱模式類型 -工具箱模式對話框會阻止在同一工具箱中運行的所有窗口,但其子層次結構中的窗口除外。 如果啟動了多個小程序,則所有小程序都將使用相同的工具箱運行。 因此,從小程序顯示的工具箱模式對話框可能會影響其他小程序以及嵌入該工具箱Java運行時環境的瀏覽器實例的所有窗口。

您可以在創建時定義模態:

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

更高版本

dialog.setModalityType(type)

*還有一個更高的級別: System Level Modality ,但是僅Java是不可能的。

另一個選擇是為此使用進度欄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM