Question

Je voudrais créer une table jTable dans laquelle, lorsque l'utilisateur sélectionne une cellule non modifiable, il devrait basculer automatiquement sur la cellule suivante modifiable. Important: l’utilisateur peut sélectionner une cellule au clavier (onglet ou flèche) et en cliquant avec la souris. C'est possible?? Comment le faire?

Était-ce utile?

La solution

Ce lien contient des détails sur la programmation de sélections dans un composant JTable ; vous auriez besoin de chaîner mouselisteners / etc pour résoudre ce problème.

Autres conseils

La tabulation de tableau montre comment vous pouvez le faire avec clavier.

Je ne l'ai jamais essayé, mais vous devriez pouvoir utiliser MouseListener pour appeler la même action lorsque vous cliquez sur une cellule.

Vient de faire un test rapide pour MouseListener et il semble fonctionner correctement:

JTable table = new JTable(...);
final EditableCellFocusAction action = 
    new EditableCellFocusAction(table, KeyStroke.getKeyStroke("TAB"));

MouseListener ml = new MouseAdapter()
{
    public void mouseReleased(MouseEvent e)
    {
        JTable table = (JTable)e.getSource();
        int row = table.rowAtPoint(e.getPoint());
        int column = table.columnAtPoint(e.getPoint());

        if (! table.isCellEditable(row, column))
        {
                ActionEvent event = new ActionEvent(
                    table,
                    ActionEvent.ACTION_PERFORMED,
                    "");
                action.actionPerformed(event);
        }
    }
};
table.addMouseListener(ml);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top