Je souhaite appeler une méthode confirmExit()
lorsque l'utilisateur clique sur le bouton de fermeture rouge de la barre de titre d'un JFrame.
Comment puis-je capturer cet événement?
Je voudrais également empêcher la fenêtre de se fermer si l'utilisateur choisit de ne pas continuer.
java
swing
jframe
windowlistener
alxcyl
la source
la source
implements WindowListener
pour que ce code fonctionne? Si tel est le cas, il serait peut-être bon d'inclure cela dans la réponse. Sinon, c'est une solution élégante.fonctionne également. Créez d'abord un JFrame appelé frame, puis ajoutez ce code en dessous.
la source
confirmExit()
méthode comme le souhaite l'OPconfirmExit()
quand [le X] est cliqué." Et le commentaire précédent n'a aucun rapport avec OQ.Cela peut fonctionner:
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"); } });
Source: https://alvinalexander.com/java/jdialog-close-closing-event
la source
C'est ce que j'ai mis comme option de menu où j'ai fait un bouton sur un
JFrame
pour en afficher un autreJFrame
. Je voulais que seul le nouveau cadre soit visible, et non pas détruire celui qui se trouve derrière. J'ai d'abord caché le premierJFrame
, tandis que le nouveau est devenu visible. A la fermeture du neufJFrame
, je m'en suis débarrassé suivi d'une action de rendre l'ancien à nouveau visible.Remarque: Le code suivant développe la réponse de Ravinda et
ng
est unJButton
: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); } }); });
la source
Essaye ça:
Ça va marcher.
la source