Création de JButtons dans une boucle [JAVA] - Java - Programmation
Marsh Posté le 07-05-2002 à 07:39:21
je ne sais pas si c'est une bonne solution, mais je les stockerais dans une Hashtable avec, comme key, perso + i pour être sûr d'avoir le bon bouton correspondant à la personne.
mais si tu as bcp de personnes... ça risque de pomper pas mal de ressources.
je ne savais pas qu'on pouvait faire Bidule truc+i = new Bidule();
Marsh Posté le 07-05-2002 à 08:13:29
JButton perso+i =
Ca, ca marchera jamais!!!!
Le nom d'une variable ne peut pas être défini comme ça!
La solution de la HashTable (ou du vecteur, si tu es sûr d'avoir toujours le même traitement à faire sur TOUS les boutons..Quoiqu'il seront rangés dans l'ordre, mais bon...) me paraît être la seule envisageable...
A la limite, tu te fais une classe ButtonGroup
public class ButtonGroup extends Vector {
public ButtonGroup(Vector labels) {
super();
JButton but;
for (int i=0; i<labels.size()-1;i++) {
but = new JButton(labels.elementAt(i).toString());
but.setActionCommand("perso"+i);
addElement(but);
}
}
public JButton getButton(int index) {
if ((index >= 0) && (index < getSize())) {
return (JButton) elementAt(index);
} else {
return null;
}
}
public JButton getButton(String action) {
JButton but;
int i = 0;
while (i < size()) {
but = (JButton) elementAt(i);
if (but.getActionCommand().equals(action)) {
return but;
}
}
return null;
}
Et bon, avec ça, tu devrais pouvoir faire ce que tu veux, non???
Bon, c'est pas sur que ça compile, par contre, c'est écrit un peu à la va vite!
Marsh Posté le 07-05-2002 à 08:45:37
gfive a écrit a écrit : JButton perso+i = Ca, ca marchera jamais!!!! |
i'm'semblait bien... j'ai essayé de faire un System.out.println et je n'arrivais même pas à l'écrire...
Marsh Posté le 08-05-2002 à 11:36:48
Merci beaucoup les gars, je vais voir ce que je peux faire avec tout ca.
Marsh Posté le 07-05-2002 à 00:56:08
Salut ,
voila mon probleme
Je voudrais créer des boutons, mais leur nombre n'est pa connu à l'avance.
J'ai un fichier qui est de la forme :
perso1 nom
perso2 nom
...
je peux en avoir n.
Donc j'ai besoin d'une boucle à l'interieur de laquelle j'instancie les boutons :
JPanel p = new JPanel();
p.setLayout(new GridLayout(NB_PERSOS,0));
for (int i=0; i<vec.size()-1;i++)
{
JButton perso+i = new JButton(); //je voudrais que les boutons s'appellent perso1, perso2 etc...
p.add(new JButton((String) vec.get(i)));//vec est la recup du fichier
}
Mais il y a un deuxieme probleme car les JButtons ne sont définis que dans la boucle alors que j'ai besoin ensuite d'ajouter des trucs à mes boutons comme par exemple perso1.addActionListener { .....}
J'espere que vous avez compris .
Merci d'avance.
a+
[jfdsdjhfuetppo]--Message édité par RobinMasters le 07-05-2002 à 01:00:14--[/jfdsdjhfuetppo]
---------------
-Hassan Cehef --> C'est possible -Roberttripoux --> Les bons comptes font les bons amis