Fechando Jframes com ActionListener

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.

System.exit(0);

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();
}