压倒JList的互斥性

时间:2015-10-08 02:46:48

标签: java swing jlist

出于某种原因,即使JList默认情况下是多选列表,但当您点击其他选项时,您之前点击的所有选项都会被删除。此外,出于某种原因,必须按住Ctrl并单击,以进行otherSelection

我尝试通过制作已存储ListModel的自定义selectedIndices并将MouseListener添加到我的JList来覆盖此操作,该list.getSelectedIndices()在激活后会追加{ {1}}到listModel.selectedIndices。然而,这种方法存在意想不到的问题:当我对解决方案进行压力测试时(我确定我在继续操作之前确定了所有不可避免的编程错误!),我发现,例如,我可以有第二个列表选择了选项,但单击第一个选项,list.getSelectedIndices()将返回第二个选项的索引(因此,我的算法将失败)。

有没有办法让每次点击实际上将点击列表选项的索引添加(或删除)到list.getSelectedIndices(),而没有我的解决方法?

Here是用于测试的JAR文件(DEBUG == true,因此可以从命令行看到调试输出。)

1 个答案:

答案 0 :(得分:1)

  

我使用JCheckBox作为ListCellRenderer

那么也许您应该使用具有布尔值的单个列JTable。每次单击单元格时,都会切换复选框的状态。