JTable - 如何强制用户只选择一行

2022-09-03 08:48:43

我必须实现一个JTable,其中必须(始终)选择一行。不允许空选择。我在初始化期间选择第一行:

table.setRowSelectionInterval(0, 0);

另外,我正在使用

table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

但用户仍然可以使用CLick + Ctrl取消选择一行。

最简单的方法是什么,确保在表中始终选择一个(exaclty)行?


答案 1

如果您创建了一个 JTable 实例,只需使用:

jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

答案 2

现在,您可以添加 s、s、s 和键绑定来尝试解决此问题。或者,您可以转到问题的核心。MouseListenerSelectionListenerKeyListener

负责管理选择详细信息。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());

推荐