Bonsoir,
Je cherche a savoir comment fermer une fenetre enfant (Jframe).
System.exit.(0) quitte tout donc cela ne vas pas.
Et setVisible(false) cela ne fait que cacher la fenetre.
Bonsoir,
Je cherche a savoir comment fermer une fenetre enfant (Jframe).
System.exit.(0) quitte tout donc cela ne vas pas.
Et setVisible(false) cela ne fait que cacher la fenetre.
Exercices en Java :
http://sebastien-estienne.developpez...utoriels/java/
Salut,
je ne suis pas bien certain mais je crois que la methode dispose() est faite pour fermer la fenetre ... A verifier en tout cas .
Je confirme c'est bien dispose qui permet de faire ça...
Bien que comme c'est indiqué dans la doc, techniquement ta fenêtre n'est pas définitivement perdue. Les ressources sont juste libérées mais rien ne t'empêche de la réafficher plus tard. Si tu veux vraiment la détruire purement et simplement, il faut aussi l'enlever du conteneur parent avec remove et détruire toute référence à la fenêtre enfant, comme ça au prochain passage du garbage collector, hop zou ya plus !
Bon courage @+++
Sébastien ARBOGAST
SCJP
Salut,
Un peu tardif, mais ça peut toujours aider.
J'ai eu à faire à ce problème, il faut changer
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Exemple de classe avec une option DISPOSE_ON_CLOSE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Si on appelle de notre programme la classe ExampleDispose ci dessus, ça marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public class ExampleDispose extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { ExampleDispose frame = new ExampleDispose(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public ExampleDispose() { setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ExampleDispose ExDis = new ExampleDispose(); ExDis.setVisible(true);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager