从JList中获取多个选定项

Mik*_*erb 3 java swing jlist

我正在创建一个包含四个列表的屏幕.基本上是两对列表,您可以在其中选择一对列表中的行,并将它们移动到对中的另一个列表中.

查看文档,我需要为每个列表使用ListSelectionModel来确定选择了哪些行.我将使用[Sel]或[Des]按钮进行实际传输.

样本屏幕

文档和示例说我需要一个ListSelectionListener但是因为在用户点击按钮之前我不会访问模型我真的需要一个监听器吗?如果我没有监听器,模型是否仍会设置getMinSelectionIndex,getMaxSelectionIndex和isSelectedIndex?

Ada*_*dam 6

你不需要一个监听器,一个监听器只对你不需要的东西保持同步有用.

您可以在选择事件发生后的任何时刻访问所选索引.方法JList.getSelectedIndices返回当前所选索引的数组,getSelectedValuesList()根据您的需要返回实际项目....

JList<String> items = new JList<String>(new String[] { "foo", "bar", "baz" });
// simulate selection
items.setSelectedIndices(new int[] { 0, 2 });
Run Code Online (Sandbox Code Playgroud)

一段时间以后....

// get actual values
System.out.println(items.getSelectedValuesList());
// get indexes
System.out.println(Arrays.asList(items.getSelectedIndices()));
Run Code Online (Sandbox Code Playgroud)