OVH Cloud OVH Cloud

l'affichagd'un composant ne s'actualise pas

2 réponses
Avatar
julien
Bonjour
J'ai une class structurée de la façon suivante:

public class TableChart extends JFrame {
JComboBox list;

public TableChart() {
super("...");

Container container = getContentPane();

container.setLayout(new GridLayout(2,2,5,5));


updateList();
container.add(list);
}


public void updateList() {
list = new JComboBox();

Object items[] = new Object[5];TableModelJS or use a setItems
method also to update the list
for (int i = 0; i < 5; i++) {
items[i] = ...;
list.addItem(items[i]);
}
repaint();
}
}

Problème: quand j'appelle cette m"thode plus tard, les données ont
changées, mais list n'est pas reste inchangé.

J'ai essayé également:

public void updateList() {

Object items[] = new Object[5];
for (int i = 0; i < 5; i++) {
items[i] = ...;
}
list = new JComboBox(items);
repaint();
}

Mais cela ne donne rien de mieux.

Je récupréère bien les bonnes valeurs dans items[i] (testé avec un
System.out.prinln).

Pourquoi list n'est pas actualisé à l'écran?

Merci
Julien

2 réponses

Avatar
Xavier Tarrago
"julien" a écrit dans le message de
news:417d2a24$0$29494$
Bonjour
J'ai une class structurée de la façon suivante:

public class TableChart extends JFrame {
JComboBox list;

public TableChart() {
super("...");

Container container = getContentPane();

container.setLayout(new GridLayout(2,2,5,5));


updateList();
container.add(list);
}


public void updateList() {
list = new JComboBox();



Dans la fonction updateList, tu crée un nouveau combobox et c'est à ce
nouveau combobox que tu ajoutes un item. Il faudrait plutôt l'ajouter à
celui qui est affiché...
if (list == null) list = new JComboBox();


Object items[] = new Object[5];TableModelJS or use a setItems
method also to update the list
for (int i = 0; i < 5; i++) {
items[i] = ...;
list.addItem(items[i]);
}
repaint();
}
}

Problème: quand j'appelle cette m"thode plus tard, les données ont
changées, mais list n'est pas reste inchangé.

J'ai essayé également:

public void updateList() {

Object items[] = new Object[5];
for (int i = 0; i < 5; i++) {
items[i] = ...;
}
list = new JComboBox(items);
repaint();
}

Mais cela ne donne rien de mieux.

Je récupréère bien les bonnes valeurs dans items[i] (testé avec un
System.out.prinln).

Pourquoi list n'est pas actualisé à l'écran?

Merci
Julien


Avatar
julien
Xavier Tarrago wrote:
public void updateList() {
list = new JComboBox();




Dans la fonction updateList, tu crée un nouveau combobox et c'est à ce
nouveau combobox que tu ajoutes un item. Il faudrait plutôt l'ajouter à
celui qui est affiché...
if (list == null) list = new JComboBox();


Argh, j'arrete pas de faire ce type d'erreur! Promis, je ferais plus
attention la prochaine fois.

Merci
Julien