Добавить определенный атрибут экземпляра в JList

Скажем, у нас есть следующий массив созданных объектов:

SomeClass[] items = {new SomeClass("Apples", 1.99f, 0.311f),
new SomeClass("Oranges", 0.99f, 0.396f),
new SomeClass("Bananas",2.99f,2.27f)};

Предположим, что конструктор представляет собой имя строки, плавающую цену, плавающий вес.

Итак, теперь я создаю JList и помещаю его в JScrollPane:

itemsList = new JList(items);
ScrollPane itemsListScrollPane = new JScrollPane(itemsList);

Есть ли способ переопределить то, что отображается на панели прокрутки, чтобы в нем отображался только атрибут имени (и отбрасывались другие атрибуты), не переопределяя метод toString() в классе SomeClass.

Apples
Oranges
Bananas

Надеюсь понятно, если есть вопросы постараюсь уточнить.

Спасибо.

Изменить: я просто хочу уточнить, есть ли способ использовать, например, метод, написанный для SomeClass, с именем getName(), который возвращает строковое значение атрибута имени и позволяет JList отображать только это?


person user1202888    schedule 10.02.2012    source источник
comment
Почему вы не хотите переопределить метод toString()? Преимущество заключается в том, что пользователь может нажать O, чтобы выбрать апельсины, не используя мышь для отображения раскрывающегося списка.   -  person camickr    schedule 11.02.2012
comment
Потому что я уже использую метод toString() для чего-то другого.   -  person user1202888    schedule 11.02.2012


Ответы (1)


Вы можете установить ListCellRenderer в JList, вы можете выбрать все, что хотите отобразить. См. также официальный документ о JList

person Guillaume Polet    schedule 10.02.2012
comment
Привет, Гийом, спасибо за это, я проверял это. Я просто хочу уточнить, есть ли способ использовать, например, метод, написанный для SomeClass, с именем getName(), который возвращает строковое значение и позволяет JList отображать это? - person user1202888; 11.02.2012
comment
Ваш рендерер может делать все, что вы хотите. Если вы хотите вызвать метод getName() для установки текста метки, это нормально. - person camickr; 11.02.2012