A voir également:
- Fermer une fentre en JAVA depuis un menu
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Menu déroulant excel - Guide
- Java apk - Télécharger - Langages
- Windows 11 menu démarrer classique - Guide
4 réponses
silfaxu
Messages postés
102
Date d'inscription
jeudi 18 décembre 2003
Statut
Contributeur
Dernière intervention
6 février 2008
11
22 déc. 2003 à 16:01
22 déc. 2003 à 16:01
Salut,
Tu peux, par exemple, utiliser un WindowListener. Par ex :
public MaFenetre extends JFrame inplements WindowListener {
... // attribut de la classe
public MaFenetre() { this.addWindowListener(this) ; } // constructeur par défaut
}
L'inconvénient de cette méthode est que tu dois absolument avoir les 7 méthodes que présente cette interface dans ta classe (ce qui peut rendre le code assez difficile à lire ..)
Quoiqu'il en soit, la méthode à modifier est la suivante :
public void windowClosing(WindowEvent e) {
this.dispose() ; // tu peux aussi utiliser this.hide() suivant ce que tu veux
}
Et enfin tu n'as plus qu'à appeler cette méthode depuis la méthode qui est liée à ton sousMenu :
public void actionPerformed(ActionEvent e) {
if ( e == monSousMenu ) { this.windowClosing(null) ; }
J'espere que ça t'aidera ...
sfx
Tu peux, par exemple, utiliser un WindowListener. Par ex :
public MaFenetre extends JFrame inplements WindowListener {
... // attribut de la classe
public MaFenetre() { this.addWindowListener(this) ; } // constructeur par défaut
}
L'inconvénient de cette méthode est que tu dois absolument avoir les 7 méthodes que présente cette interface dans ta classe (ce qui peut rendre le code assez difficile à lire ..)
Quoiqu'il en soit, la méthode à modifier est la suivante :
public void windowClosing(WindowEvent e) {
this.dispose() ; // tu peux aussi utiliser this.hide() suivant ce que tu veux
}
Et enfin tu n'as plus qu'à appeler cette méthode depuis la méthode qui est liée à ton sousMenu :
public void actionPerformed(ActionEvent e) {
if ( e == monSousMenu ) { this.windowClosing(null) ; }
J'espere que ça t'aidera ...
sfx
Utilisateur anonyme
22 déc. 2003 à 19:15
22 déc. 2003 à 19:15
Bonsoir,
pour la JFrame j'ajoute dans le constructeur:
this.addWindowListener(new WindowAdapter() {
public void windowClosing() {
System.exit(0);
}
});
Puis au niveau du menu par exemple:
quitter = new JMenuItem("Quitter");
quitter.setActionCommand("quitter");
quitter.addActionListener(this);
Il faut ensuite implementer la méthode actionPerformed:
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("quitter")) {
System.exit(0);
}
}
a+
pour la JFrame j'ajoute dans le constructeur:
this.addWindowListener(new WindowAdapter() {
public void windowClosing() {
System.exit(0);
}
});
Puis au niveau du menu par exemple:
quitter = new JMenuItem("Quitter");
quitter.setActionCommand("quitter");
quitter.addActionListener(this);
Il faut ensuite implementer la méthode actionPerformed:
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("quitter")) {
System.exit(0);
}
}
a+
Bonjour à tous,
Merci pour vos réponses. Sfx, j'ai essayé ta méthode mais je ne suis pas parvenu à avoir le bon résultat. Philtrain, je ne l'ai codé comme toi mais la solution que j'ai trouvé s'y rapproche :
je n'utilise pas setActionCommand("quitter"),
j'ai fait directement quitter.addActionListener( new ActionQuitter())
ActionQuitter est une classe encapsulée qui contient la méthode public void actionPerformed(ActionEvent e) dont le contenu est simplement System.exit(0).
J'ai fait tous les tests pour vérifier que ca marche, et je ne renconte plus aucun probleme.
Ainsi pour chaque élément de mon menu j'ai une classe encapsulée dédiée à un item contenant dans le constructeur l'action et ayant la méthode actionPerformed. De cette façon, j'ai réglé un autre probleme que j'avais au niveau de la structure du programme.
Encore Merci,
Vincent B
Merci pour vos réponses. Sfx, j'ai essayé ta méthode mais je ne suis pas parvenu à avoir le bon résultat. Philtrain, je ne l'ai codé comme toi mais la solution que j'ai trouvé s'y rapproche :
je n'utilise pas setActionCommand("quitter"),
j'ai fait directement quitter.addActionListener( new ActionQuitter())
ActionQuitter est une classe encapsulée qui contient la méthode public void actionPerformed(ActionEvent e) dont le contenu est simplement System.exit(0).
J'ai fait tous les tests pour vérifier que ca marche, et je ne renconte plus aucun probleme.
Ainsi pour chaque élément de mon menu j'ai une classe encapsulée dédiée à un item contenant dans le constructeur l'action et ayant la méthode actionPerformed. De cette façon, j'ai réglé un autre probleme que j'avais au niveau de la structure du programme.
Encore Merci,
Vincent B
Utilisateur anonyme
23 déc. 2003 à 10:15
23 déc. 2003 à 10:15
Bonjour Vincent,
La solution de la classe anonyme est en effet une bonne solution. Elle a pour principal avantage d'être compacte à écrire et personnellement je l'utilise pour les applications légères. Toutefois, elle n'est plus très adaptée lorsqu'il faut gérer des évènements complexes ou multiples.
La méthode de la classe écouteur que je proposais permet alors de clarifier le code.
a+
La solution de la classe anonyme est en effet une bonne solution. Elle a pour principal avantage d'être compacte à écrire et personnellement je l'utilise pour les applications légères. Toutefois, elle n'est plus très adaptée lorsqu'il faut gérer des évènements complexes ou multiples.
La méthode de la classe écouteur que je proposais permet alors de clarifier le code.
a+