在Swing中覆盖列表选择

时间:2011-02-17 06:59:32

标签: java swing selection jlist

我想进行列表选择,这样当我第一次选择一个项目之后,当我选择第二个项目时,它将被选中,然后两者都应该被选中,第一个选择应保持不变。我已将列表选择模式设置为多个选择。但是仍然必须按ctrl键来做这件事。 我想在不按ctrl键的情况下执行此操作。

如何选择保留列表项?

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

list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

修改 的 由 StanislavL 建议我尝试了以下但是它对我不起作用。

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

2 个答案:

答案 0 :(得分:4)

多选需要 Ctrl 键是一个众所周知的惯例。与使用 Shift 键选择一系列值相同。

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

答案 1 :(得分:1)

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

public void setSelectionModel(ListSelectionModel selectionModel)

您可以使用DefaultListSelectionModel并覆盖

public void removeSelectionInterval(int index0, int index1)

如果已经选择了项目,则调用super.remove()。