Agora uma pergunta, onde vc tá colocando estes metodos? dentro de um evento né?!
R
rdantas
tenho uma aplicação com um JFrame principal e vários outros que são chamados apartir deste. Nos secundários eu seto setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); e quando o usuario clica no botao ‘Fechar’ de um frame secundário eu uso o this.dispose().
Agora,vcprecisafecharosJFrame's secundários ou o principal? Se for o principal vc vai ter que usar mesmo o System.exit(0), pois entende-se que o usuario quer matar a aplicação.
Espero ter ajudado.
M
marciofermino
dispose();
F
FabricioPJ
Quando quero fechar um frame apenas, eu faço:
Frame meuFrame = new Frame(); meuFrame.dispose();
Isso fecha o frame atual e finaliza o processo dele
O comando setVisible apenas oculta o frame. Repaer que se você fechar vários frames com o setVisible(), quando você for verificar o Gerenciador do Sistema, estará carregado de processos “java”.
importjavax.swing.SwingUtilities;importjava.awt.BorderLayout;importjavax.swing.JPanel;importjavax.swing.JFrame;importjavax.swing.JButton;importjava.awt.Rectangle;publicclassPrincipalextendsJFrame{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJButtonjButtonCadastrar=null;privateJButtongetJButtonCadastrar(){if(jButtonCadastrar==null){jButtonCadastrar=newJButton();jButtonCadastrar.setBounds(newRectangle(51,43,142,33));jButtonCadastrar.setText("Cadastrar");jButtonCadastrar.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){System.out.println("actionPerformed()");Cadastrarcad=newCadastrar();cad.show();}});}returnjButtonCadastrar;}publicstaticvoidmain(String[]args){// TODO Auto-generated method stubSwingUtilities.invokeLater(newRunnable(){publicvoidrun(){PrincipalthisClass=newPrincipal();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}publicPrincipal(){super();initialize();}privatevoidinitialize(){this.setSize(300,200);this.setContentPane(getJContentPane());this.setTitle("JFrame");}privateJPanelgetJContentPane(){if(jContentPane==null){jContentPane=newJPanel();jContentPane.setLayout(null);jContentPane.add(getJButtonCadastrar(),null);}returnjContentPane;}}