将整个JList显示到JTextArea

问题描述:

我目前正在开发一个销售点系统,该系统具有显示客户购买的所有内容的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

采取模型和每个元素附加到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

您可以尝试这一个,

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