我的屏幕上有 7 个表格。由于它们是独立的表格,因此我可以从每个表格中选择一个单元格。
虽然我希望每次选择表格中的单元格时,我都希望从之前选择的单元格的表格中取消选择单元格,因此也可以取消选择其他表格中的单元格。
基本上我想一次从一个表中选择一个单元格。
此外,每当单击屏幕上的任意位置鼠标时,我都希望取消选择所选单元格。
我尝试过 clearselection()
,但它似乎不起作用。
最佳答案
创建 TableGroup
执行SINGLE_SELECTION
横跨一组 table ,每个 table 都有自己的 ListSelectionModel
。下面的示例包含 List<JTable>
可以管理任意数量的表的选择。
用法:
SelectionGroup group = new SelectionGroup();
group.add(new JTable(…));
group.add(new JTable(…));
…
代码:
private static class TableGroup {
private final List<JTable> list = new ArrayList<>();
private void add(JTable table) {
list.add(table);
ListSelectionModel model = table.getSelectionModel();
model.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
model.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
for (JTable t : list) {
if (!t.equals(table)) {
t.clearSelection();
}
}
}
}
});
}
}
TableGroup
在概念上类似于 ButtonGroup
,见过here和 here .
关于java - 取消选择 JTable 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38795281/