Bonjour,
J'ai un JTable contenant 3colonnes. La dernière contient des checkbox.
Le problème est : quand je sélectionne un checkbox, "graphiquement" elle est séléctionnée mais en réalité la séléction n'est prise en compte que quand je séléctionne un autre checkbox. Ainsi, si je veux par exemple supprimer deux éléments, il faut que séléctionne 3checkbox (le dernier séléctionné n'est pas prise en compte).
Je ne sais pas ce qui se passe. Voici la classe MyCellEditor (cellEditor de ma colonne où il y a les checkbox) ainsi que la fonction getNgramSelected qui prends en compte les éléments séléctionnés.
Merci d'avance pour votre aide!!
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 public class MyCellEditor_v4 extends AbstractCellEditor implements TableCellEditor{ JCheckBox checkBox; public MyCellEditor_v4(){ checkBox = new JCheckBox(); checkBox.setHorizontalAlignment(SwingConstants.CENTER); checkBox.setBackground( Color.white); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column){ checkBox.setSelected( Boolean.valueOf( value.toString() ).booleanValue() ); return checkBox; } public Object getCellEditorValue(){ return Boolean.valueOf(checkBox.isSelected()); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public ArrayList<String> getNgramSelected(){ int nbLignes = model.getRowCount(); ArrayList<String> lesSelectionnes = new ArrayList<String>(); for(int i=0; i<nbLignes; i++){ Object valeur= model.getValueAt(i, 2); if (valeur.equals(true)){ String leNgram = (String)model.getValueAt(i, 0); lesSelectionnes.add(leNgram); } } return lesSelectionnes; }
Partager