2016-03-02 61 views
0

我目前正在開發一個銷售點系統,該系統具有顯示客戶購買的所有內容的JList。結束事務後,我想將整個列表的內容顯示到JTextArea中。我使用以下代碼:將整個JList顯示到JTextArea

String s = listModel.toString(); 
jTextArea.append(s); 

JTextArea顯示奇怪的一組代碼,而不是打印列表的內容。

我已閱讀有關我的問題的其他文章,但我已閱讀所有文章只提供答案從列表打印單項但不是所有。謝謝大家!

+0

例如DefaultListModel已的ToString()方法定義如下:'公共字符串更多... toString(){ return delegate.toString();代表''代表''代表''Vector delegate = new Vector ();'這意味着當在代碼中調用'listModel.toString()'時,您將獲得'delegate.toString()'返回的內容。可能你的listModel沒有很好的輸出打印toString方法定義。看看**覆蓋toString()** http://stackoverflow.com/a/10734148/1737819 – Willmore

回答

0

採取模型和每個元素附加到JTextArea

for (int index = 0; index < listModel.getSize(); index++) { 
    jTextArea.append(model.getElementAt(index).toString()); 
} 
+0

我試過這個代碼,但jTextArea輸出 prod2 45.75 javax.swing.JTextField [,989,84 ,90x ...... [加上很長的一串文字。] 有什麼辦法可以刪除它嗎? –

+0

爲什麼JList中有文本字段? – MadProgrammer

+0

這裏的東西,你應該在你的組件JList中,JList已經呈現了用於定製數據,你應該只是把數據放入JList – MadProgrammer

0

您可以嘗試這一個,

int[] selectedIx = listbox.getSelectedIndices(); 
String s = ""; 
for (int i = 0; i < selectedIx.length; i++) 
{ 
     s += " " + listbox.getModel().getElementAt(selectedIx[i]); 
} 
ta.setText(s);