Grand nombre d'objets avec un numéro variable ? Autre solution?

hemistiches24 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je débute en programmation java, j'utilise NetBeans et lorsque j'ai un grand nombre d'objets, j'ai un souci de temps pour une condition simple :
Par exemple j'ai une grille de 4 x 4, donc 16 boutons identiques, nommés btn1, btn2, btn3, btn4, btn5, etc.. J'utilise une fonction aléatoire pour attribuer à une variable "n" un nombre compris entre 1 et 16, et à partir de ça l'idée c'est de pouvoir utiliser cette variable pour directement accéder au bouton correspondant, j'aurais écris btn[n].setEnabled(false); (je veux aléatoirement désactiver un bouton de ma grille), ça ne fonctionne pas, ça aurait été trop beau ! Le seul moyen que j'ai c'est d'écrire 16 conditions, et c'est un peu long, pire si j'ai 20 * 20 boutons...
Je voudrais savoir s'il y a un moyen de d'utiliser cette variable "n" pour accéder rapidement à mes boutons, où s'il y a une toute autre solution à mon problème, j'ai pensé à un système de coordonnées (i,j) pour mes boutons, mais je ne sais pas comment m'y prendre.

J'espère que vous aurez une réponse à ma question,
Merci d'avance !
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Le système de coordonnées est une bonne idée, cela revient tout simplement à faire un double tableau :

btn[i][j].setEnabled(false);
0
hemistiches24 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse, mais comment je dois m'y prendre pour déclarer un bouton avec des coordonnées et pouvoir l'utiliser de la façon dont tu l'as indiqué ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Voici par exemple la partie création de chaque bouton. Le système de boucle est toujours le même quoi que tu fasses ensuite avec tes boutons.

int w=10, h=10;
JButton[][] buttons = new JButton[w][h];
for (int y=0; y<h; y++)
for (int x=0; x<w; x++)
   buttons[x][y] = new JButton();
0