Olá a todos, sou novo aqui no Portal e espero que possam me ajudar.Tenho um programa que envolve 2 frames e o meu problema é que quando mando fechar um frame secundário (de auxílio), ele fecha também o príncipal, o que eu não quero. Eu sei que a solução para este problema é simples, mas eu não a encontrei.
O que já fiz foi o seguinte:
FrameAjuda fa = new FrameAjuda();
fa.setDefaultCloseOperation(fa.DISPOSE_ON_CLOSE);
fa.dispose();
Só que este código não fecha nem o frame secundário, e quando ponho “System.exit(0)”, O frame secundário e o principal são fechados.
Ficarei grato pela atenção de todos.
Opa!
O System.exit(0) realmente fecha todos os frames…
Se você está usando o Matisse que é o GUI Builder do Netbeans você precisa selecionar o frame, e na tabela de propriedade vai aparecer a opção “default close operaton” deve estar marcada como EXIT_ON_CLOSE, vocÊ tem que mudar essa opção para DISPOSE e vai funcionar
Tive progresso finalmente. Obrigado colega.
Agora tenho mais uma dúvida. Criei um botão “Fechar” com o seguinte código:
FrameAjuda fa = new FrameAjuda();
fa.setDefaultCloseOperation(fa.DISPOSE_ON_CLOSE);
fa.dispose();
Para quando este for clicado, fechar somente esse frame secundário, o que não esta acontecendo. O frame secundário só é fechado quando clico no “X” no canto superior direito do frame. Como faço para realizar essa operação?
Mais uma vez obrigado pela ajuda.
Depende de comoestá sua classe… O Netbeans costuma estender JFrame, então você só precisa chamar this.dispose(); dentro do código do botão fechar.