Bonjour,
Voici exactement ce que je recherche à faire (par contre le contenu est indiqué à titre d'exemple )
[v] représente la petite flèche des combos.
Nom de l'espèce | Nom de l'animal
=================|=================
mammifère [v]| chien [v]
mammifère [v]| chat [v]
mammifère [v]| vache [v]
reptile [v]| serpent [v]
oiseau [v]| pigeon [v]
reptile [v]| lézard [v]
poisson [v]| sardine [v]
... [v]| ... [v] [+AJOUTER]
|
Contenu des combobox associés :
mammifère:chien/chat/singe/cheval/vache
reptile : lézard/serpent/tortue
oiseau : pigeon/moineau/pélican
poisson : thon/sardine/bar
Le fonctionnement est donc très simple :
A gauche un premier combo. Quand on clique dessus le combo se trouvant à la droite du combo sur lequel on vient de cliquer prend comme valeur la liste des valeurs associées en fonction des listes. Si on clique sur oiseau, le combo de droite contiendra "pigeon/moineau/pélican".
Ensuite, l'utilisateur clique sur l'animal désiré et peut en ajouter un autre avec le bouton ajouter.
le problème est qu'avec les models que j'ai utilisé, chaque colonne possède le meme modele de combobox, et le contenu ne pourra pas changer en fonction du premier combo.
J'espère que j'ai été clair...
Mes problemes sont pour l'instant :
quand je sélectionne un item d'un combo de gauche, il est sélectionné dans presque tous les combos de la colonne.
Je ne vois pas comment faire réagir les combos de droite en fonction de ceux de gauche, le listener n'est pas évident à placer et je suis obligé de le placer sur ma table plutot que sur chacun des combos créés dans le constructeur de mon celleditor.
Voici ce que j'utilise pour info (si ya mieux je prends !)
MyComboBoxEditor moncp = null;
int vColIndex = 0;
TableColumn col = table.getColumnModel().getColumn(vColIndex);
String[] values1 = new String[]{"item1", "item2", "item3"});
moncp = new MyComboBoxEditor(values1);
moncp.addCellEditorListener(new CellEditorListener(){ public void editingCanceled(ChangeEvent e){System.out.println("cancel" );} public void editingStopped(ChangeEvent e){actionChanged(e);};
});
col.setCellEditor(moncp);
col.setCellRenderer(new MyComboBoxRenderer(values1);
|
Le problème est que je ne vois pas comment personnaliser chaque ligne (un contenu différent dans chaque combo) en agissant sur toute la colonne... je pense que je ne m'y prends pas bien.
Donc est-ce possible ? Si oui comment ?
Message édité par pyrojb le 26-06-2006 à 17:39:22