Bonjour ,
Quelle est la fonction java qui permet de fermer une fênetre en cours d'exécution?
Merci pour votre intention.
Bonjour ,
Quelle est la fonction java qui permet de fermer une fênetre en cours d'exécution?
Merci pour votre intention.
Bonjour,
pour fermer une fenêtre, il y a 2 possibilités :[EDITION] J'ai écrit trop vite. Pour cacher une fenêtre, c'est évidemment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 maJFrame.setVisible(true); // Cache la fenêtre (pour la réafficher plus tard) maJFrame.dispose(); // Détruit la fenêtre
Code : Sélectionner tout - Visualiser dans une fenêtre à part maJFrame.setVisible(false);
Sinon tu as aussi ça:
Ca permet de fermer ta JFrame quand tu clic sur la croix... Si c'est que tu veux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TaJFrame.setDefaultOperation(EXIT_ON_CLOSE);![]()
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère
Installation de Code::Blocks sous Debian à partir de Nightly Builds
Attention, avec EXIT_ON_CLOSE, c'est pas eulement la fenêtre que tu avs fermer, c'est l'entièreté du programme, cette constante correspond à un System.exit(0), et va tuer tous les Thread du programme, donc l'arrêter totalement.
Par contre dispose() fonctionne très bien...
( Pour setVisible(false), c'est mauvais, car tu ne libère pas les ressources de ta fenêtre, et surchearge donc la mémoire, mieux vaut faire dispose et la rapeller après)
Pas du tout d'accord !!! il y a beaucoup de cas où il vaut mieux garder la fenêtre en mémoire :Envoyé par Razgriz
- ça prend du temps de construire une fenêtre...
- libérer des objets pour les recréer ensuite c'est pas forcement une bonne stratégie...
À noter qu'un programme écrit proprement ne doit jamais invoquer System.exit(...) lui-même (hormis en cas d'erreur super méga grave irrécupérable avec un code d'erreur différent de 0 mais c'est assez rare). Pour bien faire, il faut arrêter tous les threads non-démons. Swing/Java2D arrêtera ses propres threads lorsque toutes les fenêtres auront été détruites ("disposées"). La stratégie du setVisible(false) est très bonne à condition de ne pas oublier de faire un dispose() pour quitter l'application.
Partager