# Java > Interfaces Graphiques en Java > AWT/Swing >  Un tableau de JButton

## HNoury

Bonjour, 

Je voudrais inclure dans une fentre un tableau de JButtons qui, lors de l"action Event" rendra visible l'instance correspondante de la classe "Transfo" (qui est une classe ouvrant une fentre permettant d'effectuer une srie de rglages).

Voici mon code :


```

```

Les instances de Transfo sont bien cres, mais pas les boutons. Une exeption  la ligne appelT[i] = new JButton() empche le tout de fonctionner.
Je manque de doc sur les tableaux sans doute. Qu'ai-je oubli? :8O:

----------


## L Ankou

Tu peux mettre l erreur?

Merci

----------


## lilou77

Salut effectivement tu as une erreur dans ton code, 
en faisant ca :
JButton appelT[] = new JButton[nT];
tu cres un tableau de nT lignes, qui peuvent etre index de 0  Nt-1
or dans ta boucle, tu va de 1  nT, donc tu dois avoir une execption comme quoi l'index est trop lev...
donc il faut que tu modifie ta boucle... pour aller de 1 = 0; i < nT.
j'espere que cela t'aura aider et que tu as compris.

----------


## L Ankou

En plus simple :



```

```

----------


## HNoury

Merci  tous, j'essaie cela bien vite. ::D:

----------


## HNoury

Merci, c'tait bien cela. Par contre, mon couteur ne marche pas. Je manque je pense de doc sur les tableaux : mon bouquin ne me parle que de int[] ou de double []...

J'ai fait :

```

```

Boaf, pas terrible!!! Une belle liste d'exeptions dans la console au sujet de ev.getSource()==appelT([i]; ::aie::  

Que puis-je lire  ce sujet de plus complet? Faut-il introduire un "for...each"?

Merci en tous les cas pour les premires rponses.

----------


## HNoury

En fait, dans la mthode actionEvent, c'est la variable i qui ne semble pas reconnue. J'ai essay "return i" pour voir, il ne le rendait pas.

Comment dit-on "tableau" en anglais (pas tableur...). J'ai essay de consulter la doc sur les classes array, class<T>, etc., je ne crois pas que ce soit ce que je cherche. Je n'ai pas trouv non plus sur developpez.com, mais pourtant il y a certainement quelque chose.  :8O:

----------


## lilou77

salut, c'est normal que i n'est pas connu, c'etait une variable que tu avais dclar temporairement int i dans ta boucle for lors de la cration....
de plus tu ne pourras jamais test :


```
ev.getSource() == appelT[i]
```

car ev.getSource() renvoi un objet et appelT[i] un JButton, donc tu dois faire un cast 

```
ev.getSource() == (JButton)appelT[i]
```

ensuite tu ne peux pas crire i, car il est indfinie, donc il te faut un moyen pour connaitre quelle instance de ton tableau de boutton a t cliqu.
en gnral moi ce que je fais (je ne sais pas si c'est la meilleur solution), c'est que quand je cre mes boutons, je leur affecte un nom qui correspond  leur index :


```

```

et ensuite tu n'a plus qu'a rcupr ton 'i' :


```

```

----------


## HNoury

Merci beaucoup, lilou77 pour ta rponse. Effectivement, grce  ton aide, je rcupre maintenant la valeur de i. Je l'Pour l'instant, 
TransfoDP[i].setVisible(true);
ne marche pas encore. Je cherche du ct des JPane intgres, mais cela ne devrait rien changer. Apparament, dans le void actionEvent, la classe Transfo[] est "oublie"...

----------


## HNoury

Merci beaucoup, lilou77 pour ta rponse. Effectivement, grce  ton aide, je rcupre maintenant la valeur de i. Je l'ai teste avec un 
System.out.println (i); et (i*2) : c'est bien un int.
Pour l'instant, 
TransfoDP[i].setVisible(true);
ne marche pas encore. Je cherche du ct des JPane intgres, mais cela ne devrait rien changer. Apparament, dans le void actionEvent, la classe Transfo[] est "oublie"... ::bug::

----------


## HNoury

Aprs avoir rflchi au blme, je vais revoir l'architecture du soft, et crer une classe "Valeurs" o stocker les valeurs gnres par les tableaux. Comme cela, je n'aurai qu' ouvrir une seule instance de Transfo qui balancera ses valeurs dans la classe ddie. Merci  ceux qui m'ont aid dans cette discussion, lilou77 et LAnkou : ce que vous m'avez appris me servira sans nul doute pour la suite du dveloppement de mon projet. ::D:

----------

