2009-12-05 6 views
0

Я пытаюсь создать JList для отображения содержимого массива. Однако массив сам по себе не является массивом строк, а представляет собой массив объектов.Java Swing JList

Возможно ли использовать тот же массив объектов, что и параметр для построения моего JList (если объектам задан метод toString)?

Спасибо.

+0

Что произошло, когда вы пробовали? Идея состоит в том, чтобы попробовать сначала. Если это работает, отлично. Если нет, тогда вы можете задать вопрос о том, что произошло. Вы даже можете опубликовать SSCCE, чтобы мы могли видеть, что вы, возможно, сделали неправильно. – camickr

+0

Мы решили пойти другим способом. Спасибо. Однако у меня все еще возникают проблемы с обновлением JList. http://stackoverflow.com/questions/1851217/java-swing-updating-jlist – GLRockwell

ответ

3

Да, это так.

В списке используется объект, называемый средством визуализации ячеек, для отображения каждого из его элементов. Средство отображения ячеек по умолчанию знает, как отображать строки и значки, и отображает объекты, вызывая toString.

См: http://java.sun.com/docs/books/tutorial/uiswing/components/list.html

0

Компонент JList является управление на основе MVC, как и все остальные Swing. Вы можете передать JList массив объектов, строковый массив или вектор, а затем предоставить ListCellRenderer для визуализации его объектов, которые вы передали (по умолчанию используется DefaultListRenderer (который является просто JLabel)).

Я не знаю, что по умолчанию, если вы не устанавливаете ListRender для визуализации объекта, если вы не передаете строки. Это плохая практика. Достаточно легко переопределить DefaultListRenender для вызова Object.ToString() для обеспечения безопасности.

Смотрите здесь более JList информация: http://java.sun.com/products/jfc/tsc/tech_topics/jlist_1/jlist.html

Смежные вопросы