2009-11-04 42 views
0

我有一個JInternalFrame窗口,當按下JButton時需要彈出一個模式對話框。起初,我嘗試使用的JDialog,但是我發現JDialog的構造函數需要:Java Swing:JInternalFrame:需要一個對話框彈出

  1. 的JFrame
  2. 布爾模式

我試圖傳遞的JInternalFrame它,但類型不匹配。

我應該在JInternalFrame中使用JDialog嗎?如果我不指定所有者(即傳遞null),該怎麼辦?那有什麼不對嗎?

回答

1
SwingUtilities.getAncestorOfClass(Window.class, myButton) 

abvove方法將返回包含按鈕的窗口。 一旦你擁有了它,你可以將它傳遞給對話框:)

EDIT1的構造函數: 我誤解我想這個問題。你怎麼能有一個JinternalFrame作爲最頂層的窗口?

EDIT2: 此外,如果你傳遞null的JDialog constrcutor則默認情況下它使用一個共享的所有者即SwingUtilities.getSharedOwnerFrame()

+0

好吧,現在我要去嘗試一下。作爲旁註,這也意味着使用JDialog和JInternalFrame是正確的嗎? – sivabudh 2009-11-04 04:54:56

+0

對不起,我不清楚。我有一個JFrame作爲我最上面的窗口,其中包含一堆JInternalFrame。但該按鈕屬於JInternalFrame。 – sivabudh 2009-11-04 04:59:20

+0

好吧,我只是試了一下;我認爲它工作正常。 (我還沒有將JDialog的按鈕連接到任何actionPerformed,但是當我按下我的JInternalFrame按鈕時,我至少可以彈出一個對話框!)謝謝! – sivabudh 2009-11-04 05:05:36