Domanda

Vorrei creare una jTable in cui quando l'utente seleziona una cella non modificabile, dovrebbe passare automaticamente alla successiva cella modificabile. Importante: l'utente può selezionare una cella tramite tastiera (scheda o freccia) e facendo clic con il mouse. È possibile?? Come farlo?

È stato utile?

Soluzione

Questo link fornisce dettagli Selezione programmata in un componente JTable ; dovresti avere concatenatori / ecc. incatenati per risolvere questo problema.

Altri suggerimenti

Tabbing della tabella mostra come puoi farlo con il tastiera.

Non l'ho mai provato ma dovresti essere in grado di utilizzare un MouseListener per invocare la stessa azione quando fai clic su una cella.

Ho appena fatto un test rapido per MouseListener e sembra funzionare bene:

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top