2012-03-28 105 views
3

我有一個關於構建GUI應用程序的問題。我覺得這個問題的標題不是很準確,但我想不出一個更好的問題。如何從登錄屏幕進入下一個屏幕? JPanel,JFrame?

構建應用程序的正確方法是什麼?我應該只創建一個JFrame,然後根據需要更改該JFrame中的面板?或者,我應該總是創建新的JFrame,並在從一個事物移動到另一個事物時擺脫舊的JFrame?

例如,我有JFrame包含一個文本字段和JLabels很少的JPanel。用戶輸入用戶名和密碼,點擊登錄按鈕繼續。應該出現一個全新的JFrame,還是應該創建一個新的JPanel,而使用舊的JFrame?

+0

看看CardLayout。 – 2012-03-28 15:22:45

+0

CardLayout看起來不錯。感謝您的答案! – Zavior 2012-03-28 15:28:11

+0

特別感謝HFOE關於如何使用cardlayout的精彩帖子! – Zavior 2012-03-28 22:39:29

回答

4

取決於,但如果您可以重複使用相同的窗口,通常情況會更好。通常,您可能需要使用JDialog/JOptionPane來處理登錄。對話窗口都意味着要更多的可支配

+0

+1使用JDialogs或JPanels – Qwerky 2012-03-28 15:17:57

4

另一種方法是使用CardLayout,如果autentification通過,則與JMenuItems訪問另一個卡顯示JMenuBar

1

我recomendation是使用1周的JFrame與JDesktopPane中作爲你的應用的「基礎」。

然後,您可以從JDesktopPane彈出任何對話框或內部框架。即使您不使用內部框架,這也可以工作。

所以,在回答你的問題,我會先建1周的JFrame用的JMenuBar,JToolBar中和的JDesktopPane。然後,最重要的是,我會打開一個帶有日誌字段和閃屏的JDialog。如果它記錄正常,則關閉對話框並啓用菜單欄和工具欄。從那裏你保持打開和關閉任何對話框或內部框架...

希望這可以幫助...