2014-03-26 54 views
1

如果我正在處理這個問題,請告訴我。具有多種形式的Java

我有什麼:

  • 的JFrame
  • 的JDialog
  • 主要可執行

我想做

有辦法打開JDialog(全班擴展JDialog)並讓JFrame暫停並等待JDialog在做任何事情之前都要關閉。 JDialog實際上是隱藏的,所以我可以調用一個方法來拉取用戶輸入的數據。

我的問題

  • 無法弄清楚如何使JFrame中等到JDialog的是,如果可能的話我想JFrame中被禁用,直到的JDialog關閉執行更多的代碼
  • 前關閉。

回答

2

什麼你所描述的無非是使用模式的JDialog更多。構建對話框時,當您調用其構造函數時,請務必將其模態類型設置爲ModalityType.APPLICATION_MODAL。

例如,

JDialog myDialog = new JDialog(myJFrame, "Dialog", 
     Dialog.ModalityType.APPLICATION_MODAL); 

請閱讀:How to Use Modality in Dialogs

+0

myJFrame,是JFrame中或從我的例子中的JDialog? – Brandon

+0

@Brandon:''我的例子中的JDialog ...「 - 呃,...你不會發布任何我能看到的示例代碼。也許你可以猜測myJFrame是代表一個JFrame還是一個JDialog。我相信你可以弄清楚這一點。 –

+1

@Brandon:對於諷刺對不起,但嚴重的是,myJFrame將代表調用JFrame,即對話框父窗口。我認爲這應該是顯而易見的,我稱之爲「myJFrame」,這就是我爲什麼給它起名字的原因。如果您需要更具體的幫助,那麼通過一切手段,發佈示例代碼,最好是[最小示例程序](http://stackoverflow.com/help/mcve)(請閱讀鏈接)。 –