选择下一个单元JTable

时间:2009-09-11 19:47:44

标签: java swing jtable

我想创建一个jTable,当用户选择一个不可编辑的单元格时,它应该自动将焦点更改为下一个可编辑单元格。重要提示:用户可以通过键盘(选项卡或箭头)和鼠标单击选择单元格。可能吗??该怎么做?

2 个答案:

答案 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);