Senhore(a)s boa noite,
Criei um botão de saída em um dos meu Jframes.
Utilizei as seguintes linhas de código:
botaoSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
Compilei o meu projeto e percebi que só quando clico duas vezes no botaoSair a ação é executada.
Existe alguma forma de alterar isso?
Desde já agradeço pela atenção.
O problema persiste e o system.exit(0); fecha o programa por completo.
JFrame eu entendo que é sua janela principal. Aquela que guarda seus componentes, etc. O mesmo que clicar no botão x lá no canto da aplicação. Tá querendo fechar um JInternalFrame? Se sim, eu geralmente crio algo tipo… Digamos que meu JInternalFrame eu chamei de iFrame e tenho um botao.
Na ação do botao, eu tenho…
if(e.getSource() == botao) {
iFrame.dispose();
}
Manda o codigo ae
Tente assim primeiro
public void actionPerformed(ActionEvent e) {
System.out.println("Clicou no botao sair!!");
dispose();
}
Verifique se é necessáro apertar duas vezes para aparecer a mensagem, ou se aparece 2 vezes clicando até fechar.
Caso apareça 2 vezes a mensagem até fechar
public void actionPerformed(ActionEvent e) {
System.out.println("Clicou no botao sair!!");
dispose();
dispose();
}
Verifique tbem se não tem dois jframes, um sobreposto ao outro
1 curtida
Isso para mim funciona.
private void jButtonTipoImovelSairActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); }
Ao inves do actionPerformed(), tente usar, como outra opção tambem
public void mouseClicked(MouseEvent evt) {
this.dispose();
}