Eu quero chamar um método confirmExit()
quando o botão vermelho fechar da barra de título de um JFrame é clicado.
Como posso capturar esse evento?
Também gostaria de evitar que a janela feche se o usuário optar por não continuar.
java
swing
jframe
windowlistener
alxcyl
fonte
fonte
implements WindowListener
para que esse código funcione? Nesse caso, pode ser bom incluir isso na resposta. Caso contrário, esta é uma solução elegante.também funciona. Primeiro crie um JFrame chamado frame e, em seguida, adicione esse código abaixo.
fonte
confirmExit()
método como o OP gostariaconfirmExit()
quando [o X] for clicado." E o comentário anterior não está relacionado ao OQ.Isso pode funcionar:
jdialog.addWindowListener(new WindowAdapter() { public void windowClosed(WindowEvent e) { System.out.println("jdialog window closed event received"); } public void windowClosing(WindowEvent e) { System.out.println("jdialog window closing event received"); } });
Fonte: https://alvinalexander.com/java/jdialog-close-closing-event
fonte
Isso é o que eu coloquei como uma opção de menu onde fiz um botão em um
JFrame
para exibir outroJFrame
. Queria apenas que a nova moldura ficasse visível e não destruir a que estava por trás dela. Eu inicialmente escondi o primeiroJFrame
, enquanto o novo se tornou visível. Ao fechar o novoJFrame
, descartei-o seguido por uma ação de tornar o antigo visível novamente.Observação: o código a seguir expande a resposta de Ravinda e
ng
é umJButton
:ng.addActionListener((ActionEvent e) -> { setVisible(false); JFrame j = new JFrame("NAME"); j.setVisible(true); j.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { setVisible(true); } }); });
fonte
Experimente isto:
Vai funcionar.
fonte