我使用Java編寫代碼爲JList
類,該類使用JOptionPane
顯示列表中的所選項目,但它無法正常工作。顯示在附圖中。選項窗格中的顯示對象(從列表中選擇)
任何人都可以幫助我嗎?
[截圖] [1]
我使用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()))'並報告新的輸出。 –
停止破壞問題內容! –