我无法通过单击修改 JTable 中的选定行

I can't modify the selected row in JTable with clicking

我有一个 table,开始时选择的行是第 0 行。我向 table 添加了一个 MouseEvent 来跟踪用户的点击。当点击次数为 1 时,我只想将焦点放在选定的行上。当点击次数至少为2次时,我再做一个动作,但不属于本题。

当我 运行 代码时,它不是从行中删除选择,而是将其添加到当前选择。

            public void mouseClicked(MouseEvent e) {
                int row = leftTable.rowAtPoint(e.getPoint());
                if (e.getClickCount() == 1) {
                    leftTable.removeRowSelectionInterval(0, leftTable.getRowCount() - 1);
                    leftTable.setRowSelectionInterval(row, 0);
                }
                if (e.getClickCount() >= 2) {
                    System.out.println("selected: " + row);
                }
            }
        });

When I run the code, it is not removing the selection from the row, but add it to the current selection.

leftTable.setRowSelectionInterval(row, 0);

使用方法时阅读API

API 状态:

选择从 index0 到 index1 的行,包括在内。

由于您的其中一个值始终为 0,因此您将始终 select 所有行。

如果您只想select单行,那么两个参数应该具有相同的值。

无论如何都不需要这个逻辑,因为 table 默认已经支持这个功能。