Bonjour,
J'ai un probleme : j'ai un programme qui lance plusieurs JFrame, et lorsque j'en ferme une (avec la croix) ça tue l'application.
J'ai essayé de faire un setDefaultCloseOperation(DISPOSE_ON_CLOSE) mais ça ne change rien....
Une idée?![]()
Discussion :
Bonjour,
J'ai un probleme : j'ai un programme qui lance plusieurs JFrame, et lorsque j'en ferme une (avec la croix) ça tue l'application.
J'ai essayé de faire un setDefaultCloseOperation(DISPOSE_ON_CLOSE) mais ça ne change rien....
Une idée?![]()
quelque chose comme ça résoudra peut-être ton problème
T.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { if (JOptionPane.showConfirmDialog(this, "Désirez vous quitter l'application ?", "Quitter", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) { return; } System.exit(0); } else { super.processWindowEvent(e); } }
Salut,
Ben ça devrait!Envoyé par daweed74
![]()
On peut voir ton code?
Tu es sûr que ca ne fonctionne pas en faisant:
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Car là je vois pas,sinon montre nous le bout de code où tu lance tes JFrames stp
crée ton propre WindowAdapter ... c'est plus simple.
normalement en faisant ce que j'ai suggéré, en l'occurence overrider la méthode processWindowEvent de JFrame il peut contrôler l'événement comme il le souhaite.Envoyé par tomy4ever
Voilà ce que tu dois mettre pour tes frames.
Evitez les System.exit(0); ! Ca tue l'applic, c'est nul, c'est comme si tu quittes windows en enlevant la prise... Un dispose() DOIT suffire, si l'applic ne se ferme pas correctement avec un dispose() c'est qu'il y a du caca qui traîne (un thread en trop ou autre).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { this.dispose(); } });
Partager