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.
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.
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" <cemoreau@hotmail.com> a écrit dans le message de
news:slrnc3kbte.7n9.cemoreau@cem.homelinux.net...
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.
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.
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
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 ;-))
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
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 ==.
Le 23-02-2004, Mielmonster <mielmonster@ifrance.com> 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 ==.
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 ==.