繁体   English   中英

从JList中获取多个选定项

[英]Get multiple selected items from a JList

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

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

样本屏幕

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

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

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

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

一段时间之后....

// get actual values
System.out.println(items.getSelectedValuesList());
// get indexes
System.out.println(Arrays.asList(items.getSelectedIndices()));

但由于在用户点击按钮之前我不会访问该模型,我是否真的需要一个监听器?

不需要。只需要监听器就可以通知选择或取消列表的项目,并且由于您正在等待来自JButton的通知,因此它的ActionListener就是您所需要的。

如果我没有监听器,模型是否仍会设置getMinSelectionIndex,getMaxSelectionIndex和isSelectedIndex?

这与听众无关。 如果您提出要求,该模型仍应提供此信息。

但为什么要问这些问题? 通过简单的测试很容易发现这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM