2013-04-17 70 views
2

我想顯示JDialog所以我用這個:使用SwingUtilities.invokeLater關注一個JDialog?

SwingUtilities.invokeLater(new Runnable() { 
    @Override 
    public void run() { new DialogBox().setVisible(true); } 
}); 

它工作正常顯示,但然後我JDialog不留焦點,它需要(用戶應該不能工作在對話框打開時使用主UI)。

擺脫SwingUtilities.invokeLater()安全嗎?

呵呵,根據this question擴展JDialog或JFrame是不明智的,爲什麼?這就是我一直這樣做的。

+0

不要你只是想要一個模態對話框? –

+0

擴展一個JDialog或JFrame歸結爲設計。您實際添加到這些頂級容器的功能是什麼?這也是一個考慮因素,如果您直接在這些頂級容器之一上構建UI,則將來會限制您的UI組件的使用。最好是擴展JPanel之類的東西,在此基礎上構建你的UI,提供所需的訪問器並將它放置在所需頂級容器的實例的頂部 – MadProgrammer

回答