J'ai une colonne d'une table (monJTable) que j'édite avec colonne d'une tableComboBox :
Je veux lorsque je clique sur un bouton , mettre à jour le contenu de MaComboBox. J'arrive à modifier bien son contenu mais pourtant j'ai un petit probleme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private final TableComboBox maComboBox = new TableComboBox(); TableColumn col = monJTable().getColumnModel().getColumn(2); col.setCellEditor(new MaComboBoxTableCellEditor(maTableComboBox));
Supposons que le MacomboBox contient toto1, toto2 et toto3 et que j'ai selectionné toto2.
Je clique sur le bouton de mise a jour, la combo doit contenir mnt titi1, titi2 et titi3.
Lorsque je clique sur la Combo, elle me propose que titi1, titi2 et titi3 c'est bon, mais lorsque je ne choisi rien la cellule de table prend la valeur toto2 qui a été selectionnée avant!
J'ajoute que dans mon ActionListner de mon bouton de mise a jour je fais:
Je mets en annexe ma Classe MaComboBoxTableCellEditor
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 maComboBox.removeAll(); maComboBox.updateUI();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class MaComboBoxTableCellEditor extends AbstractCellEditor implements TableCellEditor { private TableComboBox combo; public MaComboBoxTableCellEditor(TableComboBox combo){ this.combo = combo; this.combo.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e) { if (e.getStateChange()==ItemEvent.SELECTED){ fireEditingStopped(); } } }); } public Component getTableCellEditorComponent(JTable table, Object value,boolean isSelected, int rowIndex, int vColIndex) { combo.setValueColumnIndex(0);// Je prends la colonne zero pour remplir ma combo return combo; } public Object getCellEditorValue() { return combo.getSelectedItem(); } }
Partager