Wählen Sie nächste Zelle JTable
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?
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);