Java Swing JList - PullRequest
       8

Java Swing JList

0 голосов
/ 05 декабря 2009

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

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

Спасибо.

Ответы [ 2 ]

3 голосов
/ 05 декабря 2009

Да, это так.

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

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

0 голосов
/ 05 декабря 2009

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

...