我无法通过单击修改 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 默认已经支持这个功能。
我有一个 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 默认已经支持这个功能。