cs_bordeaux
Messages postés35Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention14 juin 2008
-
13 juin 2008 à 17:06
cs_bordeaux
Messages postés35Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention14 juin 2008
-
14 juin 2008 à 15:41
Bonjour,
j'aurais aimé savoir si il est possible de récupérer la position d'un curseur dans la cellule d'une JTable?
ps : Enoncé cours question difficile...
A voir également:
Exception in thread "main" java.lang.illegalargumentexception: bound must be positive
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 14 juin 2008 à 08:20
Tu peus ajouter un "CaretListener" au "TableCellEditorComponent" (par type de colonne).
Dans "caretUpdate" tu peus récupérer la position du curseur dans la cellule éditée de la JTable.
Quelque chose comme ceci:
addCaretListener(table);
...
private void addCaretListener(final JTable table) { if (table null || table.getRowCount() 0) {
throw new IllegalArgumentException();
}
List classes = new ArrayList();
List columns = new ArrayList();
for (int column = 0; column < table.getColumnCount(); column++) {
classes.add(table.getModel().getColumnClass(column));
columns.add(column);
}
for (Integer column : columns) {
table.editCellAt(0, column);
Component c = table.getCellEditor().getTableCellEditorComponent(
table, table.getValueAt(0, column), false, 0, column);
if (c instanceof JTextComponent) {
((JTextComponent)c).addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
System.out.println(e.getDot());
}
});
table.getCellEditor().stopCellEditing();
}
}
}