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.
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 : 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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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![]()
Partager