OVH Cloud OVH Cloud

[debutant] fermer une JFrame

13 réponses
Avatar
areuh
Bonsoir a tous et toutes.

Ce soir j' ai une petite question a propos de comment pouvoir fermer une
JFrame par un JButton.

Je cree une classe qui herite de JFrame (si je ne me trompe pas cela me
cree une JFrame)

je cree un layoutmanager, des JPanel, des JButton.

Qd je clique sur un JButton de cette JFrame, je souhaite fermer cette
JFrame, donc j' ecris :

btnF01Agenererbis.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent clickbtnF01Agenererbis) {
if ( (JButton) clickbtnF01Agenererbis.getSource() ==
btnF01Agenererbis)
// si j' ecris : "this.hide();" cela ne fonctionne pas
// "this.dispose();" ne fonctionne pas non plus
}
}
);

Qqu' un peut il m' expliquer pourquoi ces methodes ne peuvent etre
appliquees a this.

Voilà,
un grand merci
a+
areuh

3 réponses

1 2
Avatar
Mielmonster
salut,

si ma memoire est bonne, les methodes de comparaisons d'objets sont definis
explicitement par le developpeur pour chaque objet.

voir a ce sujet l'interface Comparable
http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/coursjava/collection_comparable.html

a+

Yannick

"Cem" a écrit dans le message de
news:
x==y teste l'egalité des références (pointeurs) des objets.
x.equals(y) teste l'égalité de valeurs.

OK. Merci.

Je m'en doutais un peu pour String mais c'est un peu particulier.
Si on prend 2 JButton x et y.
x==y compare les références, donc si x==y signifie que c'est le même
bouton.
En revanche, je m'interroge un peu sur x.equals(y). Est ce que 2 boutons
peuvent donner x.equals(y) vrai et x==y faux ?
Apparemment, la classe JButton hérite sa méthode equals de Object
(contrairement à String qui la redéfinit).
Je n'ai pas l'impression qu'il y a ait la moindre différence entre x==y
et x.equals(y) pour ce type d'objet.



Avatar
Willy
Pour armand :
Je viens d' essayer

btnF01Agenererbis.aaddActionListener(this);
public void actionPerformed(ActionEvent evt){
if( evt.getActionCommand().equals("Générer"){
this.hide();
}}


normal, tu es dans la JFrame là ;-)

Le plus important c' est que j' ai 2 syntaxes differenes pour mes
JButton, ça aussi c' est un détail, mais j' aimerai bien comprendre
pourquoi la syntaxe initiale empêche l' utilisation de "this.hide();"


déjà expliqué, je n'étais pas clair ?

Qd j' implemente cette classe de paquet, j' essaye d implementer
dispose() (ou + exactement "this.dispose();") et l' audit de code ne
me propose ni hide() ni dispose(),


normal, déjà expliqué

donc a priori ta technique ne
resoud pas mon probleme, a moins que ce soit moi qui ne pratiqua pas
correctement.


ma "technique" ne visait pas à résoudre ton problème, juste à t'expliquer
pourquoi ça ne marchait pas.
Tu appréhendes mal les relations entre les classes, et il faut avouer que ça
n'est pas forcément complètement évident à la base...

Bon, pas le temps ce matin, mais si tu as un soucis, repose des questions
(avant tu relis qd même ce qu'on t'a écrit ;-))

Bonne journée
@+
Willy


Avatar
Cem
Le 23-02-2004, Mielmonster a écrit :
si ma memoire est bonne, les methodes de comparaisons d'objets sont definis
explicitement par le developpeur pour chaque objet.

voir a ce sujet l'interface Comparable
http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/coursjava/collection_comparable.html

Merci. Intéressant ce cours.

La page que tu donnes cause essentiellement de l'implémentation de la
méthode CompareTo afin de permettre un tri d'objets en tableau ou en
liste. C'est bon à savoir et ça peut servir.
Dans le même cours on donne des détails sur la méthode equals ici
http://www.laltruiste.com/document.php?compteur=2&rep=9&evolution8
D'après ce que je comprends, la méthode equals définie au niveau Object
établit une comparaison de référence, mais certaines sous-classes (comme
String, Boolean, ...) redéfinissent la méthode pour permettre une
comparaison de valeur avec les objets de même classe.
Dans l'exemple des boutons JButton, vu que la méthode equals est héritée
directement de Object, comparer deux boutons avec equals est donc bien
complètement équivalent à les comparer avec ==.

1 2