2012-05-04 63 views
2

我有一個Jframe窗口裏面有一個按鈕。通過點擊按鈕,它會打開一個新的JFrame窗口。但是當我關閉這個窗口時,它會自動關閉帶有按鈕的第一個Jframe窗口。當我關閉第二個Jframe窗口時,如何防止關閉第一個Jframe窗口?JFrame關閉按鈕

public static void main (String[] args){ 
     JFrame frame = new JFrame("Test"); 
     frame.setVisible(true); 
     frame.setSize(500,500); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JButton button = new JButton("Test"); 


     button.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent e) 
      { 
       new SView().gui(); 
      } 
     }); 


     JPanel panel = new JPanel(); 
     GridBagLayout gridbag = new GridBagLayout(); 
     panel.setLayout(gridbag); 
     panel.add(button); 
     panel.setBackground(new Color(156, 93, 82)); 
     frame.add(panel, BorderLayout.CENTER); 
+1

JFrames並沒有這樣做的做,而是保持一個穩定的GUI。也不要去交換JFrames,因爲這會導致非常糟糕的用戶體驗。通過CardLayout交換視圖或者必須顯示依賴對話框窗口,然後使用JDialog或JOptionPane,會更好。 –

+0

我希望,但如果我開始改變,那麼它會變得非常混亂。那麼沒有辦法阻止它呢? –

+1

請參閱[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/a/9554657/418556)瞭解更多提示。 「如果我開始改變,那麼它會變得非常混亂。」*別擔心。它已經***非常混亂。*** –

回答

3

不要叫

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
+0

謝謝隊友。它工作 –

+2

本來很方便的提及調用'setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)' –