Position du curseur dans une JTable [Résolu]

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

Votre réponse

2 réponses

Meilleure réponse
Messages postés
493
Date d'inscription
samedi 20 mai 2006
Dernière intervention
15 juillet 2012
- 14 juin 2008 à 08:20
3
Merci
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();
        }
    }
}

Merci uhrand 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de uhrand
Messages postés
35
Date d'inscription
lundi 6 décembre 2004
Dernière intervention
14 juin 2008
- 14 juin 2008 à 15:41
0
Merci
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.