2012-07-01 55 views
2

在Netbeans的一個包中,我創建了兩個JFrame表單,第一個是Login,第二個是mainProgram,成功登錄後,我使用以下方式「關閉」Login框並打開主程序框架。從一個JFrame移動到另一個

mainProgram m=new mainProgram(); 
m.setVisible(true); 
setVisible(false); //to hide the log in frame 

這是正確的方法嗎?如果這兩個分離的類是隱藏的而不是關閉的,這不是錯誤的嗎?這一個過程還是兩個不同的過程?如果有更好的方法,那它是什麼?

感謝..

回答

3

這是正確的方法是什麼?

是的,這應該沒問題。

是不是錯的,如果這2個獨立的類是隱藏的,而不是 被關閉?

理想的是處置未使用的形式(如登錄表單時不需要任何更多)

是這些過程1或2個不同的處理?

這些將在Netbeans中使用相同的工藝

3

運行在一個包我創建2種的JFrame形式,第一個是登錄,第二個是,MainProgram(主程序),成功登錄後,我使用下面的方式來「關閉」登錄框架並打開主程序框架。

使用CardLayout,正確登錄後,你可以切換GUI到下一個卡和/或在屏幕上也變化了的JFrame Dimmnsion,

+0

CardLayout的+1。沒想到那個! – GETah

+0

我曾經使用CardLayout,但CardLayout將JFrame大小設置爲最大卡片的大小,意思是如果mainProgram框架比Login框架大(它必須是),Login框架看起來很大很奇怪,然後我決定改變每個幀加載時的大小,它的工作,但大小和卡的變化同時使它緩慢,切換使用setVisible(真)是更快 –

+1

'setSize'在'setVisible'之前,正確登錄後使用'setLocationRelativeTo(null)'調用'JFrame.pack()'(例如,以顯示器爲中心) – mKorbel

1

在我看來,更正確的方法是使用另一個類,就像Launcher一樣,它會有入口點(主要方法)。 將登錄窗口設置爲模態JDialog,並將DISPOSE_ON_CLOSE設置爲值default close operation。類對話應包含通知確實登錄的用戶的方法。登錄對話框關閉後,顯示主框架

loginDialog.setVisible(true); 
if (loginDialog.isLoggedIn()) 
    mainFrame.setVisible(true); 
1

嘗試......

  1. 您所使用的方法隱藏和隱藏是好的,但如果使用配置會更好

  2. 嘗試對支配這些JFrame的類應用單例模式

  3. 是的,他們都將在相同的過程

相關問題