2012-12-26 89 views
2

當我開始我的程序時,我創建了MainFrame。當我點擊「搜索」按鈕時,我會顯示另一個JFrame。 如果它在搜索中獲得結果,則目標是在MainFrame中填充信息。使用許多jFrames

這一切都工作。 但是爲了能夠顯示信息,我必須重新創建MainFrame。 這意味着,兩個MainFrame保持打開狀態。

如何隱藏第一個?


Supose泰德我只有大型機和與搜索表單一個對話框。

當我點擊搜索對話框上的確定按鈕,我有一些信息。

在MainFrame類中,我知道信息在那裏。

我有texttext的文本框等,並在最後一行我有「setvisible(true)」。

但他們仍然相當!爲什麼??


能有人在這裏後一個例子,該怎麼辦呢?請

我只是搜索所有選項,但我無法解決。

+0

參見[?多JFrames,好/壞的做法的用途](http://stackoverflow.com/a/9554657/418556) –

回答

0

使用JFrame.setVisible(false)隱藏,和JFrame.setVisible(true)使其重新出現。 這將適用於swing中的任何JComponent,而不僅僅是JFrame。

+0

我知道那。但是當我打開顯示的第二個MainFrame時,我該如何隱藏第一個? – Pepper

+0

爲第一個調用'setVisible(false)'。但是,我建議您不要使用兩個JFrame,而要遵循Eng.Fouad的答案。使用其中包含多個JPanel的一個JFrame,並在面板之間切換,而不是創建新框架。 –

+1

@pepper在第一幀調用'dispose' - 看起來你不再需要它,所以你不妨去掉第一幀消耗的本地資源。最好使用一個'JDialog'作爲第二個窗口,並用它的結果填充第一個框架 – MadProgrammer

0

可以隱藏與該方法的調用一個JFrame:

setVisible(false); 

然而,你可能會因爲你必須創建一個模式對話框,這意味着用戶可以僅交互選項考慮使用JDialogs代替使用搜索對話框打開它。

7

Swing應用程序最多應包含一個JFrame。如果您需要顯示多個「窗口」,則可以使用多個JDialog並使用dispose()來隱藏對話框。

或者,您可以使用CardLayout作爲佈局管理器,而不是使用太多的對話框。

參見: