2016-04-08 106 views
-2

我使用Java編寫代碼爲JList類,該類使用JOptionPane顯示列表中的所選項目,但它無法正常工作。顯示在附圖中。選項窗格中的顯示對象(從列表中選擇)

任何人都可以幫助我嗎?

[截圖] [1]

+0

我們在選項窗格中看到的是數組的正常字符串表示形式('String []')。有必要將選定的字符串格式化爲適合顯示的字符串。將'+(places.getSelectedValues())'更改爲'+(Arrays.toString(places.getSelectedValues()))'並報告新的輸出。 –

+1

停止破壞問題內容! –

回答

0

替換:

add(l); 

由:

getContentPane().add(l); 

執行相同的所有的 「附加」 的電話。

此外,「places.getSelectedValues()」返回一個Collection。你應該迭代它。

+0

爲什麼要替換所有的「添加」電話?作爲一種便利添加及其變體,(加上remove和setLayout)已被覆蓋,以根據需要轉發給contentPane。 「爲了方便起見,在最近的JDK中」 – FredK

+0

「已被覆蓋」並不正確。如果使用不太新近的JDK進行編譯,它將不起作用。確實,這不是問題的根源,但我認爲這是值得一提的。 – AhmadWabbi

0

刪除Handler類,並實現以下方法:

places.addListSelectionListener(new ListSelectionListener() { 
     @Override 
     public void valueChanged(ListSelectionEvent e) { 
      JOptionPane.showMessageDialog(null,"your selection: "+ (places.getSelectedValuesList())); 
     } 
    }); 

現在就看你如何想顯示所選值:)我只給你處理數據所需的聽衆

0
places.getSelectedValues(); 

該方法返回一個數組,以查看該數組的toString表示形式。

如果您閱讀getSelectedValues()方法的API,您將會看到它已被棄用。編譯課程時不要忽略警告消息!

該API建議您使用getSelectedValuesList()方法。此方法返回一個列表,它將格式化列表中的項目給你。

如果您不喜歡列表的默認格式,那麼您需要遍歷列表並自行設置文本的格式。

相關問題