JComboBox dans une JXtable
testeurforme
Messages postés
3
Statut
Membre
-
testeurforme Messages postés 3 Statut Membre -
testeurforme Messages postés 3 Statut Membre -
Bonjour
Novice en la matière j'espère trouver une âme charitable qui pourrait m'orienter (la réponse est aussi bien venue :) ) pour le problème suivant :
Je voudrais pouvoir inserer des JCombobox dans les cellules d'une colonne d'une JXTable. Ces combos contienent une liste qui varie en fonction de la valeur d'une autre cellule (de la même ligne).
Exemple : la cellule (0,0) contient le nom d'une ville X et la cellule (0,1) contient une combo contenant la liste des arrondissement de la ville X
si quelqu'un à la gentillesse de m'accorder quelques minutes ...
Merci d'avance
Novice en la matière j'espère trouver une âme charitable qui pourrait m'orienter (la réponse est aussi bien venue :) ) pour le problème suivant :
Je voudrais pouvoir inserer des JCombobox dans les cellules d'une colonne d'une JXTable. Ces combos contienent une liste qui varie en fonction de la valeur d'une autre cellule (de la même ligne).
Exemple : la cellule (0,0) contient le nom d'une ville X et la cellule (0,1) contient une combo contenant la liste des arrondissement de la ville X
si quelqu'un à la gentillesse de m'accorder quelques minutes ...
Merci d'avance
1 réponse
en cherchant (oui oui je sais j'aurai du faire ca avant de poster :$) j'ai trouvé (enfin je crois:p) la solution à mon problème : (toute remarque est bien sur le bienvenue...)
il faut définir un TableCelleEditor et un TableCellRenderer :
il faut définir un TableCelleEditor et un TableCellRenderer :
public class MyDefaultTableCellRenderer extends DefaultTableRenderer {
JComboBox combo;
public MyDefaultTableCellRenderer() {
super();
combo = new JComboBox(new ComboBoxListModel());
combo.setRenderer(new ComboBoxMapRenderer());
}
public Component getTableCellRendererComponent(JTable jTable, Object object, boolean b, boolean b1, int row, int col) {
return combo;
}
}
public class MyDefaultTableCellEditor extends AbstractCellEditor implements TableCellEditor {
JComboBox combo;
public MyDefaultTableCellEditor() {
super();
combo = new JComboBox(new ComboBoxListModel());
combo.setRenderer(new ComboBoxMapRenderer());
}
public Object getCellEditorValue() {
return combo.getSelectedItem();
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
//recuperation de la ville contenu dans la ligne de mon tableau
Ville ville = ((ListTableModel) table.getModel()).getRow(row);
((ComboBoxListModel) combo.getModel()).setList( ctrl.getModel().getLstAllFonction());
updateLstRoleItems(combo);
return combo;
}
}