Unloader mais controles dynamiquement

alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 30 nov. 2005 à 15:35
cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 - 2 déc. 2005 à 23:39
bonjour,

j'ai 1 applet. je laisse la possibilite a l'utilisateur de l'applet de specifie le nbre d'item (=> de TextField) dont ils ont besoin. si il choisi 30 dans la combobox ("nbItem") et clique sur "OK", il s'affiche 30 TextField ("nomItem") sur l'applet. jusqu'ici pas de pbl.

le truc c'est que si apres avoir affiche ces 30 items, si il se reprend et selectionne 15 dans "nbItem" et clique sur "OK", le prg ci-dessous s'execute sans planter mais il y a tjrs 30 TextFields a l'ecran. Je crois les items 16 a 30 n'ont pas ete completement unloades ... comment faire ?

private JTextField[] nomItem = null;
public void actionPerformed(ActionEvent ev) {
Object source = ev.getSource();
if (source == boutItem) {
nomItem = null;
nomItem = new JTextField[nbItem.getSelectedIndex() + 1];
for (int i = 0; i <= nbItem.getSelectedIndex(); i++) {
nomItem[i] = new JTextField();
valAtt[i] = new JFormattedTextField();
nomItem[i].setBounds(5, 40 + 25 * i, 60, 20);
nomItem[i].setText("Item " + (i + 1));
add(nomItem[i]);
}
}
}

merci a vous,

alonsyl

3 réponses

cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
30 nov. 2005 à 15:41
Il faudrait que tu fasse un removeAll();

"A game is a series of interesting choices." Sid Meier
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
30 nov. 2005 à 22:06
private JTextField[] nomItem = null;
public void actionPerformed(ActionEvent ev) {
Object source = ev.getSource();
if (source == boutItem) {
/* nomItem = null;
j'ai place ici "nomItem.removeAll();", "removeAll(JTextField nomItem);", "this.removeAll(nomItem);", ... mais rien a faire : ca plante. quelle est la bonne syntaxe ? */
nomItem = new JTextField[nbItem.getSelectedIndex() + 1];
for (int i = 0; i <= nbItem.getSelectedIndex(); i++) {
nomItem[i] = new JTextField();
valAtt[i] = new JFormattedTextField();
nomItem[i].setBounds(5, 40 + 25 * i, 60, 20);
nomItem[i].setText("Item " + (i + 1));
add(nomItem[i]);
}
}
}

merci a toi,

alonsyl
0
cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
2 déc. 2005 à 23:39
La bonne syntaxe est this.removeAll() quyi supprime tous les composants du panel.

Sinon, tu peux utiliser this.remove(Comp);

"A game is a series of interesting choices." Sid Meier
0
Rejoignez-nous