JTable - 如何强制用户只选择一行
我必须实现一个JTable,其中必须(始终)选择一行。不允许空选择。我在初始化期间选择第一行:
table.setRowSelectionInterval(0, 0);
另外,我正在使用
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
但用户仍然可以使用CLick + Ctrl取消选择一行。
最简单的方法是什么,确保在表中始终选择一个(exaclty)行?
我必须实现一个JTable,其中必须(始终)选择一行。不允许空选择。我在初始化期间选择第一行:
table.setRowSelectionInterval(0, 0);
另外,我正在使用
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
但用户仍然可以使用CLick + Ctrl取消选择一行。
最简单的方法是什么,确保在表中始终选择一个(exaclty)行?
如果您创建了一个 JTable 实例,只需使用:
jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
现在,您可以添加 s、s、s 和键绑定来尝试解决此问题。或者,您可以转到问题的核心。MouseListener
SelectionListener
KeyListener
负责管理选择详细信息。ListSelectionModel
您可以简单地为行选择提供自己的ListSelectionModel
public class ForcedListSelectionModel extends DefaultListSelectionModel {
public ForcedListSelectionModel () {
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
@Override
public void clearSelection() {
}
@Override
public void removeSelectionInterval(int index0, int index1) {
}
}
只需将其设置到您的桌子上...
table.setSelectionModel(new ForcedListSelectionModel());