Bonjour à tous,
Voilà je suis face à un problème et je me perds un peu les pieds dedans. Ce que je voudrais à la base c'est que lorsque je finis d'éditer une cellule, que l'édition se termine. Pour cela j'utilise à la base
Ca ne change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 _table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
Donc je me suis dit que je devais changer le comportement par défaut et j'ai donc fait comme ça :
Et ça ne fonctionne pas vraiment, voire pas du tout.
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 InputMap im = _table.getInputMap(JXTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); // Have the enter key work the same as the tab key KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0); KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); final Action oldEnterAction = _table.getActionMap().get(im.get(enter)); Action stopEditAction = new AbstractAction() { public void actionPerformed(ActionEvent e) { oldEnterAction.actionPerformed( e ); int row = _table.getSelectedRow(); int col = _table.getSelectedColumn(); TableCellEditor editor = _table.getCellEditor(row, col); if (editor != null) editor.stopCellEditing(); } }; _table.getActionMap().put(im.get(enter), stopEditAction);
Donc si quelqu'un a une petite idée sur la question, je lui en serai extrêmement reconnaissante
Merci,
Partager