# Java > Interfaces Graphiques en Java > AWT/Swing >  [Dbutant] Comment faire un compteur pour un bouton?

## Paulinho

Salut!

J'ai le code suivant pour quatre boutons:

```

```

Je veut faire un compteur pour chacun des boutons mais je ne sais pas comment on fait en Java.

Merci d'avance.

----------


## afrikha

tu dois d'abord ajouter un actionListener  tes boutons,et puis donne-leur des noms differents car l tes deux premiers boutons ne sont plus rfrencs.Ensuite pour le compteur tu n'as qu' mettre un int dans actionPerformed que tu incrmentes  chaque fois.
Renseigne-toi un peu plus sur swing et plus prcisement sur le systme d'ecouteurs pour grer les evenements en regardant les tuto de developpez et ceux de sun.

----------


## gorgonite

Pour bien apprendre Java regarde ces cours et tutoriels pour la programmation Java : http://java.developpez.com/cours/

----------


## Paulinho

Merci  vous deux.

J'ai ajout un MouseListener pour calculer le nombre des clicks pour chaque bouton mais quand je click dans les boutons, les nombre des clicks est toujours zro...

Voici mon code:

```

```

----------


## Baptiste Wicht

tu peut aussi faire comme ca : 


```

```

 chaque fois que tu clique sur le bouton, ca augmente de un le compteur et ca l'affiche sur un bouton.

----------


## aDamas

T'as oubli d'initialiser ton compteur de clic.

Le problme dans ton code c'est que tu incrmente toujours le mme compteur quel que soit le bouton que tu clique... Et il me semble que tu voulais  chaque fois incrmenter le score de l'quipe corrspondant au bouton si je ne m'abuse...

Une ide de solution :
Faire une nouvelle classe BoutonClub(par exemple) qui drive JButton et qui possde un attribut clickCount et des mthodes getClickCount setClickCount et incClickCount(). Et ton couteur ressemblerais alors  a :



```

```

par exemple.

----------


## Paulinho

J'avoue que l je suis un peu perdu... Je dois faire une autre classe comme boutonClub.java mais je peut maintenir mon code ou dois-je faire un private JButton dans mon code. J'ai tent de l'inserer mais l'editeur me donne un tas des probmes...

----------


## aDamas

Tu fais une nouvelle classe :



```

```

Et dans ton code tu remplace tes JButton par des BoutonClubs, il se comporteront la mme chose puisque ta classe n'est qu'une drivation de JButton.

----------


## Paulinho

j'ai fait ceci:

```

```

Mais l'editeur ne reconnait pas setText.  ::(:

----------


## aDamas

Oups, dsol, ::oops::   tu doit lui passer un String, alors fais comme a :



```
this.setText&#40;String.valueOf&#40;clickCount&#41;&#41;;
```

Et si jamais je crois que la mthode setLabel(String label) est quivalent.   ::):

----------


## Paulinho

Merci beaucoup aDamas pour ton aide!  ::D:  
Mais encore une precision... s'il vous plait, bien sur,

Mon code de la class Ldc est ceci

```

```

Il doit utiliser BoutonClub et je pense qu'il l'utilise parce que l'applet apparait mais le compteur ne fonctionne pas. 

Pardon de demander tant des choses mais je suis dbutant en Java (je connais mieux C++) et c'est le premier applet que je fais seul  :8O:  .

----------


## aDamas

Ta classe Ldc n'a pas besoin d'implmenter l'interface MouseListener juste ActionListener. Et tu n'ajoute pas tes ActionListener correctement :


```

```

----------


## Paulinho

Quelqu'un sait si je peut faire quelque chose comme a:

Glasgow Rangers : Inter Milo 0:0

et si l'utilisateur click sur le bouton de Inter Milo (par exemple) le bouton continue avec le nom de l'quipe et le score se modifie:

Glasgow Rangers : Inter Milo 0:1.

On peut utiliser Graphics mais qu'elle serait la variable? Et comment maintenir le nom de l'quipe sur le bouton?

Merci d'avance!

----------


## aDamas

Tu peux ajouter des JLabel, ce serait le plus simple. Ou mieux encore, des JTextField, comme a le score est ditable(pratique en cas de fausse manoeuvre).




> On peut utiliser Graphics mais qu'elle serait la variable?


Quelle variable ?




> Et comment maintenir le nom de l'quipe sur le bouton?


C'est  dire? Pourquoi le maintenir? Il s'enlve?

----------


## aDamas

Tu peux essayer quelque chose comme a :



```

```

Par contre tu va tre oblig de fair un lien entre le bouton et le JTextField correspondant. Par exemple en ajoutant  ta classe BoutonClubs un attribut 


```
private JTextField fieldAffichage;
```

et d'ajouter un mthode 


```

```

Et enfin dans la mthode incCountClick, tu remplace le setText(...); par this.fieldAffichage.setText(...);

----------


## Paulinho

Merci encore!

J'ai fait comme tu m'as dit:

```

```



```

```

C'tait a que je voulais faire. Mais le compteur ne modifie pas le rsultat... Peut-tre que j'ai oubli de faire quelque chose...

----------


## aDamas

Ouais, un truc tout bte. c'est aussi un oubli que je fais souvent... Tu as oubli d'associ l'couteur de bouton  tes boutons.
Il te manque juste les lignes :



```

```

Ca devrait fonctionner maintenant.

----------


## Paulinho

Tu as raison mais il n'affiche pas encore le score... La console me renvoit a

```

```

 quand je clique dans un bouton.

----------


## Paulinho

Le problme c'est ici:

```
this.fieldAffichage.setText&#40;String.valueOf&#40;clickCount&#41;&#41;;
```

et ici:

```
&#40;&#40;BoutonClub&#41;e.getSource&#40;&#41;&#41;.incClickCount&#40;&#41;;
```

selon la console.

----------


## aDamas

Ca veut dire que ton fieldAffichage n'existe pas. C'est normal, tu as oubli de l'associ. ajoute a :



```

```

et l je te garantis que a fonctionne, j'ai test chez moi...

----------


## Paulinho

Super!!!  ::lol::  

Un grand merci  toi aDamas!!!

Bonne soire!   ::D:

----------


## aDamas

Il est temps d'aller boire quelques bires!  ::chin::  
*Bonne soire*

----------

