2012-05-04 5 views
2

У меня есть окно Jframe, внутри которого есть кнопка. Нажав кнопку, открывается новое окно JFrame. Но когда я закрываю это окно, он автоматически закрывает первое окно Jframe кнопкой. Как я могу предотвратить закрытие первого окна Jframe при закрытии второго?JFrame Close button

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 были сделаны не для этого, а провести один стабильный графический интерфейс. Также не переходите на замену 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)' –