选项窗格中的显示对象(从列表中选择)

问题描述:

我使用Java编写代码为JList类,该类使用JOptionPane显示列表中的所选项目,但它无法正常工作。显示在附图中。选项窗格中的显示对象(从列表中选择)

任何人都可以帮助我吗?

[截图] [1]

+0

我们在选项窗格中看到的是数组的正常字符串表示形式('String []')。有必要将选定的字符串格式化为适合显示的字符串。将'+(places.getSelectedValues())'更改为'+(Arrays.toString(places.getSelectedValues()))'并报告新的输出。 –

+1

停止破坏问题内容! –

替换:

add(l); 

由:

getContentPane().add(l); 

执行相同的所有的 “附加” 的电话。

此外,“places.getSelectedValues()”返回一个Collection。你应该迭代它。

+0

为什么要替换所有的“添加”电话?作为一种便利添加及其变体,(加上remove和setLayout)已被覆盖,以根据需要转发给contentPane。 “为了方便起见,在最近的JDK中” – FredK

+0

“已被覆盖”并不正确。如果使用不太新近的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()方法。此方法返回一个列表,它将格式化列表中的项目给你。

如果您不喜欢列表的默认格式,那么您需要遍历列表并自行设置文本的格式。