[java debutant] getSource()
defi
-
choubaka Messages postés 39986 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 39986 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
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?
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
}
}