我想创建一个jTable,当用户选择一个不可编辑的单元格时,它应该自动将焦点更改为下一个可编辑单元格。重要提示:用户可以通过键盘(选项卡或箭头)和鼠标单击选择单元格。可能吗??该怎么做?
答案 0 :(得分:1)
此链接详情Programmatically Making Selections in a JTable Component;你必须将mouselisteners / etc链接起来才能解决这个问题。
答案 1 :(得分:1)
Table Tabbing显示了如何使用键盘完成此操作。
我从来没有尝试过,但是当你点击一个单元格时,你应该可以使用MouseListener来调用相同的Action。
刚刚对MouseListener进行了快速测试,它似乎工作正常:
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);