[java debutant] getSource()
defi
-
choubaka Messages postés 5535 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 5535 Date d'inscription Statut Modérateur Dernière intervention -
En utilisant la methode getSource sur des boutons définis dans la classe.
Si dans la définition de la classe je crée deux bouton en mettant JBUTTON XXX1 = new JBUTTON("xxx1")
et le deuxieme ,
JBUTTON XXX2 = new JBUTTON("xxx2"),
la méthode getSource ne fonctionne dans actionPerformed, par contre si je mets
XXX1 = new JBUTTON("xxx1")
et le deuxieme
XXX2 = new JBUTTON("xxx2"), la méthode getSource fonctionne.
Pouvez-vous m'expliquer pourquoi?
Si dans la définition de la classe je crée deux bouton en mettant JBUTTON XXX1 = new JBUTTON("xxx1")
et le deuxieme ,
JBUTTON XXX2 = new JBUTTON("xxx2"),
la méthode getSource ne fonctionne dans actionPerformed, par contre si je mets
XXX1 = new JBUTTON("xxx1")
et le deuxieme
XXX2 = new JBUTTON("xxx2"), la méthode getSource fonctionne.
Pouvez-vous m'expliquer pourquoi?
4 réponses
-
ah bon ?
-
salut
c'est bizarre ... les deux types de déclarations sont effectués au même endroit ?
-
si je comprends bien dans ton deuxième cas
XXX1 = new JBUTTON("xxx1")
et le deuxieme
XXX2 = new JBUTTON("xxx2"), la méthode getSource fonctionne.
les boutons ont été déclarés dans les attributs de la classe dérivée de JFrame...
Donc la visibilité s'étend à toute la classe et non pas uniquement au sein d'une méthode..
Dans ton premier cas, seulement au sein d'une méthode, voire du constructeur.. Je me trompe?
-
essaye ça ... cas d'école de "comment utiliser les JButton"
import java.awt.*; import java.awt.event.*; import java.swing.*; class TestPanel extends JPanel implements ActionListener{ private JButton boutonUn; private JButton boutonDeux; public TestPanel() { boutonUn = new JButton("Un"); boutonDeux = new JButton("Deux"); add(boutonUn); add(boutonDeux); boutonUn.addActionListener(this); boutonDeux.addActionListener(this); } public void actionPerformed(ActionEvent e){ Object source = e.getsource(); if (source == boutonUn) System.out.printLn("Un"); else if (source == boutonDeux) System.out.printLn("Deux"); } } class TestFrame extends JFrame{ public TestFrame(){ setTitle("Test"); setSize(300,300); addWindowsListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0); } }); Container c = getContentPane(); c.add(new TestPanel); } } public class TestButton{ public static void main (String[] args){ JFrame f = new TestFrame(); f.show } }