Position du curseur dans une JTable [Résolu]

cs_bordeaux 35 Messages postés lundi 6 décembre 2004Date d'inscription 14 juin 2008 Dernière intervention - 13 juin 2008 à 17:06 - Dernière réponse : cs_bordeaux 35 Messages postés lundi 6 décembre 2004Date d'inscription 14 juin 2008 Dernière intervention
- 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...
Afficher la suite 

Votre réponse

2 réponses

uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention - 14 juin 2008 à 08:20
+3
Utile
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();
        }
    }
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de uhrand
cs_bordeaux 35 Messages postés lundi 6 décembre 2004Date d'inscription 14 juin 2008 Dernière intervention - 14 juin 2008 à 15:41
0
Utile
Parfait et merci.

public class MaCellEditor extends DefaultCellEditor {
    private final static JTextField textEditor = new JTextField();
    private static int numeroLigne;
    public MaCellEditor () {
        super(textEditor);
        ToolTipManager.sharedInstance().registerComponent(textEditor);
        textEditor.addCaretListener(new CaretListener() {
            public void caretUpdate(final CaretEvent e) {
                textEditor.setToolTipText("Ligne :" + numeroLigne + 1
                        + " Colonne :" + e.getDot());
            }
        });
    }

et maintenant comme faire pour mettre à jour la tooltip?
Commenter la réponse de cs_bordeaux

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.