Frage

Ich mag eine jTable machen, in dem, wenn der Benutzer eine nicht bearbeitbaren Zelle auswählen, dann sollte es automatisch den Fokus auf die nächste bearbeitbare Zelle ändern. Wichtig: der Benutzer eine Zelle, die durch Tastatur (Tab oder Pfeil) und auch mit der Maus auswählen kann. Ist es möglich?? Wie man es zu?

War es hilfreich?

Lösung

Dieser Link Details Programmatically Auswählen aus einer JTable Komponente ; Sie müssten mouselisteners haben / etc gekettet diese abzuarbeiten.

Andere Tipps

Tabelle Tabbing zeigt, wie Sie es mit dem tun Tastatur.

Ich habe es nie versucht, aber Sie sollten einen Mouselistener verwenden, um die gleiche Aktion aufzurufen, wenn Sie auf eine Zelle klicken.

hat einfach einen Schnelltest für den Mouselistener und es scheint gut zu funktionieren:

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top