我有一个扩展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
}
}
我尝试过这些方法,但似乎没有一种方法可行。当前的问题是,当我选择一个项目时,这些项目都没有尽我所能。
答案 0 :(得分:0)
您需要使用自定义ListSelectionModel
并覆盖addSelectionInterval(...)
方法。
如果选择符合您的特定要求,则在调用super.addSelectionInterval(...)
之前,此方法中的逻辑需要验证要选择的项目。