选项窗格中的显示对象(从列表中选择)
我使用Java编写代码为JList
类,该类使用JOptionPane
显示列表中的所选项目,但它无法正常工作。显示在附图中。选项窗格中的显示对象(从列表中选择)
任何人都可以帮助我吗?
[截图] [1]
替换:
add(l);
由:
getContentPane().add(l);
执行相同的所有的 “附加” 的电话。
此外,“places.getSelectedValues()”返回一个Collection。你应该迭代它。
为什么要替换所有的“添加”电话?作为一种便利添加及其变体,(加上remove和setLayout)已被覆盖,以根据需要转发给contentPane。 “为了方便起见,在最近的JDK中” – FredK
“已被覆盖”并不正确。如果使用不太新近的JDK进行编译,它将不起作用。确实,这不是问题的根源,但我认为这是值得一提的。 – AhmadWabbi
删除Handler
类,并实现以下方法:
places.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
JOptionPane.showMessageDialog(null,"your selection: "+ (places.getSelectedValuesList()));
}
});
现在就看你如何想显示所选值:)我只给你处理数据所需的听众
places.getSelectedValues();
该方法返回一个数组,以查看该数组的toString表示形式。
如果您阅读getSelectedValues()
方法的API,您将会看到它已被弃用。编译课程时不要忽略警告消息!
该API建议您使用getSelectedValuesList()
方法。此方法返回一个列表,它将格式化列表中的项目给你。
如果您不喜欢列表的默认格式,那么您需要遍历列表并自行设置文本的格式。
我们在选项窗格中看到的是数组的正常字符串表示形式('String []')。有必要将选定的字符串格式化为适合显示的字符串。将'+(places.getSelectedValues())'更改为'+(Arrays.toString(places.getSelectedValues()))'并报告新的输出。 –
停止破坏问题内容! –