【发布时间】:2016-11-25 21:56:11
【问题描述】:
我希望能够编写一个手动选择 JList 中的项目的语句,例如:
JList myList = new JList(items);
myList.selectValueAt(index);
【问题讨论】:
我希望能够编写一个手动选择 JList 中的项目的语句,例如:
JList myList = new JList(items);
myList.selectValueAt(index);
【问题讨论】:
你可以使用
jList.setSelectedValue(string, rootPaneCheckingEnabled)
或
jList.setSelectedIndex(index);
【讨论】:
您需要从JList 获取ListSelectionModel。有了它,您可以修改选择:
...
ListSelectionModel sm = myList.getSelectionModel();
sm.clearSelection(); // clears the selection
sm.setSelectionInterval(index, index); // Sets a selection interval
...
虽然ListSelectionModel 允许对JList 的选择行为进行细粒度控制,但JList 本身也提供了方便的方法,如JList.setSelectedIndex() 来简单地修改选定的元素。
【讨论】:
JList 的文档:
JList 的选择状态由另一个单独的模型(ListSelectionModel 的一个实例)管理。 JList 在构造时使用选择模型进行初始化,并且还包含查询或设置此选择模型的方法。 此外,JList 提供了方便的方法来轻松管理选择。这些方法,例如 setSelectedIndex 和 getSelectedValue,是负责与选择模型交互的细节的覆盖方法。 默认情况下,JList 的选择模型被配置为允许一次选择任何项目组合;选择模式 MULTIPLE_INTERVAL_SELECTION。选择模式可以直接在选择模型上改变,也可以通过JList的cover方法改变。更新选择模型以响应用户手势的责任在于列表的 ListUI。
在你的情况下:
myList.setSelectionIndex(index);
【讨论】: