在多选JList中的特定项之间切换

时间:2015-03-05 15:17:17

标签: java jlist defaultlistmodel

我有一个扩展JList&的类。使用DefaultListModel。

所以,让我们说我有一个包含项目A,B,C,D等的列表。

我可以选择多个项目,但我希望能够选择A& B永远不能同时被选中。所以我希望如此,如果我选择A然后选择B,则选择A取消选择,反之亦然。

这可能吗?

编辑:添加了初始实施

public TestList extends JList {
    public void TestList() {
        super(new DefaultModelList());
    }

    // Method 2
    public void addSelectionInterval(int anchor, int lead) {
        //DO Work
    }

    // Method 3
    public void setSelectedValue(Object obj, boolean shouldScroll) {
        // DO WORK
    }
}

TestList test = new TestList();
// Method 1
test.addListSelectionListener(new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent e) {
        // check value selected and deselect if necessary
    }
}

我尝试过这些方法,但似乎没有一种方法可行。当前的问题是,当我选择一个项目时,这些项目都没有尽我所能。

1 个答案:

答案 0 :(得分:0)

您需要使用自定义ListSelectionModel并覆盖addSelectionInterval(...)方法。

如果选择符合您的特定要求,则在调用super.addSelectionInterval(...)之前,此方法中的逻辑需要验证要选择的项目。