Java 覆盖Swing中的列表选择

Java 覆盖Swing中的列表选择,java,swing,selection,jlist,Java,Swing,Selection,Jlist,我想进行列表选择,这样当我第一次选择一个项目时,它会被选中,然后当我选择第二个项目时,两者都会被选中,即第一个选择应该保持原样。我已将列表选择模式设置为“多重选择”。但还是要按ctrl键来做这件事。我想不用按ctrl键就可以完成 如何保持列表项处于选中状态 下面是我设置选择模式的行: list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 编辑: 根据斯坦尼斯拉夫的建议,我试着跟随,但对我来说不起作用

我想进行列表选择,这样当我第一次选择一个项目时,它会被选中,然后当我选择第二个项目时,两者都会被选中,即第一个选择应该保持原样。我已将列表选择模式设置为“多重选择”。但还是要按ctrl键来做这件事。我想不用按ctrl键就可以完成

如何保持列表项处于选中状态

下面是我设置选择模式的行:

list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
编辑: 根据斯坦尼斯拉夫的建议,我试着跟随,但对我来说不起作用

            DefaultListSelectionModel model = new DefaultListSelectionModel();
            model.removeSelectionInterval(0, 2);
            user_list.setSelectionModel(model);

众所周知,multi-select需要按Ctrl键。与使用Shift键选择一系列值相同


就我个人而言,我永远不会花精力去改变这种行为,因为这会让已经熟悉其他应用程序的用户感到困惑。

众所周知,多选需要按Ctrl键。与使用Shift键选择一系列值相同


就我个人而言,我永远不会花精力去改变这种行为,因为这会让已经熟悉其他应用程序的用户感到困惑。

尝试替换列表中的ListSelectionModel。使用

public void setSelectionModel(ListSelectionModel selectionModel)
您可以使用DefaultListSelectionModel和override

public void removeSelectionInterval(int index0, int index1)

如果项目已选定,请调用super.remove。

尝试替换列表中的ListSelectionModel。使用

public void setSelectionModel(ListSelectionModel selectionModel)
您可以使用DefaultListSelectionModel和override

public void removeSelectionInterval(int index0, int index1)

如果项目已被选中,请致电super.remove。

+1我在公司一直遇到这个问题。他们想要改变既定的惯例,因为这是他们想要的。。。这真的是他们想要的吗?可能不是。。。从长远来看是不行的+我在公司里经常遇到这种情况。他们想要改变既定的惯例,因为这是他们想要的。。。这真的是他们想要的吗?可能不是。。。从长远来看是不行的!我试过了,但没什么变化。我在问题中添加了我的代码。我看不出您在代码中覆盖removeSelectionInterval的位置。我阅读了它关于removeSelectionIntervalnt index0,int index1的文档,但无法完全覆盖它。我真的不知道该怎么做。你能再帮我一点忙吗?我试过了,但没什么变化。我在问题中添加了我的代码。我看不出您在代码中覆盖removeSelectionInterval的位置。我阅读了它关于removeSelectionIntervalnt index0,int index1的文档,但无法完全覆盖它。我真的不知道该怎么做。你能再帮我一点忙吗。