Bonjour,
je débute avec SWING et donc la réalisation d'interfaces graphiques.
J'ai fais un exemple simple: lorsque l'on clique sur le bouton, cela vient ajouter 1 au compteur et afficher ce compteur. J'ai une fonction main qui instancie tout simplement une MaFenetre.
Pour cela j'ai procédé comme ci dessous:
Il y a donc un listener sur le bouton "COMPTEUR"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public class MaFenetre extends JFrame{ public MaFenetre () // constructeur { setTitle ("Gestion de clics") ; Toolkit tk = Toolkit.getDefaultToolkit() ; Dimension dimEcran = tk.getScreenSize() ; int larg = dimEcran.width ; int haut = dimEcran.height ; setSize (larg/2, haut/2) ; Container contenu = getContentPane() ; contenu.setLayout(new FlowLayout()) ; bouton = new JButton ("COMPTEUR") ; EcouterLabel ecoutelabel1 = new EcouterLabel(nbClics) ; bouton.addActionListener(ecoutelabel1); contenu.add(bouton) ; nbClics = 0 ; compte = new JLabel ("nombre de clics sur COMPTEUR = "+ nbClics) ; contenu.add(compte) ; } public int nbClics; public JTextField saisie, copie; private JLabel compte; private JButton bouton; }
J'ai décidé de faire un listener dans un fichier séparé, j'ai donc créé une classe EcouterLabel dont voici le code
Jusque là tout va bien. "n" s'incrémente bien et s'affiche sur la console, mais comment faire pour pouvoir donner la valeur au label "compte"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public class EcouterLabel implements ActionListener{ private int n; public EcouterLabel(int n) { this.n = n; } public void actionPerformed (ActionEvent ev) { n=n+1; System.out.println (ev.getActionCommand()+" "+n) ; } }
ev.getActionCommand() donne le nom de l'objet cliqué, mais comment modifier sa valeur dans la classe EcouterLabel ?
car la méthode setText() ne peut pas s'appliquer...
Ca doit etre assez trivial, merci pour vos réponses.
Bonne soirée
Partager