bonjour à tous,
j'ai plusieurs tableaux de composants différents : comp, lampe, interrupteur....
Quand je veux créer un nouveau composant, je parcours le tableau qui stocke ces derniers, et je prends le premier index ou l'objet est "null", c'est à dire non défini, car cet emplacement est donc libre.
le code partiel est :
A la ligne 10, je cherche un emplacement libre dans le tableau "comp" de la classe Var.
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 public static void clic_sur_recept( int r, int ix, int iy) { JOptionPane.showMessageDialog(null, " clic sur recept : " + r + " on va créer un " + Var.matériel); String toto = "Var." + Var.matériel; JOptionPane.showMessageDialog(null, " toto = : " + toto); if (Var.matériel== "lampe") { // si une ligne du tableau "comp" est dispo, on l'attribue au prochain composant for (int n=0; n<Const.nb_R; n++) { if (Var.comp[n] == null) { // JOptionPane.showMessageDialog(null, " je vais créer le comp : " + i ); attribComp(r, ix, iy, n) ; break; } } } }
Cela fonctionne mais je dois répéter ce code pour tous mes tableaux contenant des objets.
J'ai tenté de créer une chaine "toto" à la ligne 4, contenant le début de la référence au tableau : "Var." en concaténant avec le contenu de la variable "Var.matériel", qui contient le nom du tableau.
La chaine ainsi obtenue est ok, et c'est : "Var.comp".
En étant un peu trivial, j'ai tenté de remplacer la ligne 10 par : "if ( toto[n] == null)" ......
mais cela ne fonctionne pas, car le programme cherche un tableau toto[] et n'interprète pas ce "toto" comme son contenu qui est "Var.comp", qui lui, est un vrai tableau qui fonctionne.
Ma question est donc : est-il possible d'indiquer le nom d'un tableau sur lequel travailler, non pas directement avant les crochets d'indexation "[]" mais dans une variable dont on peut remplir la valeur avec le nom du tableau à traiter???
Bravo à ceux qui comprendront la question, déja!!
Merci à ceux qui tenteront une réponse!!![]()
Partager