Bonjour,
je réalise actuellement un outil qui utilise une jtable. Pour le rendre plus ergonomique, j'aimerais qu'en appuyant sur ctrl+d le contenu de la colonne n°1 de la ligne sélectionnée soit copié dans la colonne n°2
j'ai donc rajouté le raccourci suivant :
Mais j'ai un problème avec la méthode quickCopy :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 table.getInputMap (JComponent.WHEN_IN_FOCUSED_WINDOW).put (KeyStroke.getKeyStroke (KeyEvent.VK_D, InputEvent.CTRL_MASK), "quick copy shortcut"); table.getActionMap().put("quick copy shortcut", new AbstractAction() { public void actionPerformed(ActionEvent ae) { quickCopy(); } });
setValueAt est bien appelé mais le contenu de la cellule ne change pas. Si je change row par row-1 par contre cela fonctionne (mais n'est pas ce que je souhaite faire). Je soupçonne l'appui sur la touche d de faire passer la jtable en mode édition ce qui empêche une autre méthode de l'éditer, mais je ne sais pas comment remédier à celà.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private void quickCopy() { int row=table.getSelectedRow(); if( row == -1) { return; } table.setValueAt(table.getValueAt(row, 1), row, 2);
Merci d'avance pour votre aide
Partager