2016-03-02 3 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);