出于某种原因,即使JList
默认情况下是多选列表,但当您点击其他选项时,您之前点击的所有选项都会被删除。此外,出于某种原因,必须按住Ctrl并单击,以进行otherSelection
我尝试通过制作已存储ListModel
的自定义selectedIndices
并将MouseListener
添加到我的JList
来覆盖此操作,该list.getSelectedIndices()
在激活后会追加{ {1}}到listModel.selectedIndices
。然而,这种方法存在意想不到的问题:当我对解决方案进行压力测试时(我确定我在继续操作之前确定了所有不可避免的编程错误!),我发现,例如,我可以有第二个列表选择了选项,但单击第一个选项,list.getSelectedIndices()
将返回第二个选项的索引(因此,我的算法将失败)。
有没有办法让每次点击实际上将点击列表选项的索引添加(或删除)到list.getSelectedIndices()
,而没有我的解决方法?
Here是用于测试的JAR文件(DEBUG == true
,因此可以从命令行看到调试输出。)
答案 0 :(得分:1)
我使用JCheckBox作为ListCellRenderer
那么也许您应该使用具有布尔值的单个列JTable
。每次单击单元格时,都会切换复选框的状态。