Bonjour,
Dans une JTable, je souhaite que chaque entrée dans une cellule (clavier et souris) passe celle-ci en mode édition, afin de consacrer le double-clic à une autre fonction.
D'avance merci.
Version imprimable
Bonjour,
Dans une JTable, je souhaite que chaque entrée dans une cellule (clavier et souris) passe celle-ci en mode édition, afin de consacrer le double-clic à une autre fonction.
D'avance merci.
La méthode suivante devrait faire l'affaire :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public static void setClickCountToEdit(final JTable table, final int clickCountToEdit) { table.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent me) { if (me.getClickCount() == clickCountToEdit) { Point p = me.getPoint(); int row = table.rowAtPoint(p); int column = table.columnAtPoint(p); table.editCellAt(row, column); } } }); } ... JTable table = new JTable(...); setClickCountToEdit(table, 1);
Merci, mais cela ne résoud pas le problème. Le double-clic continue de passer la cellule en mode édition.
Et avec quelque chose comme ça :
?Code:
1
2
3
4
5
6
7
8 public class MyTableCellEditor extends AbstractCellEditor implements TableCellEditor { public boolean isCellEditable(EventObject evt) { if (evt instanceof MouseEvent) { return ((MouseEvent)evt).getClickCount() == 1; } return false; } }
Et ensuite tu ajoutes le MouseListener sur la table pour le double click.
Merci.
Je m'en sors avec ce qui suit.
Code:editor.setClickCountToStart(3);
Maintenant, j'ai un problème plus surprenant. En effet, dans le mouseClicked() du MouseListener (attaché à la JTable), la fonction getClickCount() retourne toujours 1, quel que soit le nombre de clics sur la souris 8O
Résolu.
Merci à tous ;)
Citation:
Maintenant, j'ai un problème plus surprenant. En effet, dans le mouseClicked() du MouseListener (attaché à la JTable), la fonction getClickCount() retourne toujours 1, quel que soit le nombre de clics sur la souris
Merci aussi de nous dire comment tu l'as résolu...Citation:
Résolu.
Merci à tous
Difficile à dire car j'ai effectué entre-temps, nombre de modifications dans le code. Je gère finalement le double-clic dans la méthode isCellEditable() et j'ai supprimé le
setClickCountToStart(3)