首页 > 解决方案 > 我无法通过单击修改 JTable 中的选定行

问题描述

我有一张桌子,开始时选择的行是第 0 行。我在表格中添加了一个 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);
                }
            }
        });

标签: javamouseclick-event

解决方案


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

leftTable.setRowSelectionInterval(row, 0);

使用方法时阅读 API。

API 声明:

选择从 index0 到 index1 的行(含)。

由于您的值之一始终为 0,因此您将始终选择所有行。

如果您只想选择一行,则两个参数应具有相同的值。

在任何情况下都不需要此逻辑,因为默认情况下该表已经支持此功能。


推荐阅读