Я создаю JList в программе Java GUI, которая будет заполнена с пользовательскими «SteamFriends» класса через ArrayList под названием friendsList:Есть ли способ динамически изменить атрибут toString для пользовательских классов?
friendsListJList.setModel(new javax.swing.AbstractListModel() {
SteamFriend[] friendListArr = friendsList.toArray(new SteamFriend [0]);
public int getSize() { return friendListArr.length; }
public SteamFriend getElementAt(int i) { return friendListArr[i]; }
});
Сейчас функция ToString() возвращает friendName в SteamFriend объект, но мне интересно, можно ли изменить его, чтобы я мог контролировать, какой атрибут он возвращает, и какова наилучшая практика для него.
Если я хочу заполнить список JList списком SteamFriends, который сортируется по возрасту (например), то как бы изменить метод toString() для отображения возраста? Может быть, через статическую переменную (public static int variableToDisplay) в объекте SteamFriend?
это идет ли в инициализации компонента JList каким-то образом это идет в пользовательский класс и вызывается автоматически, когда он включен в JList? –
@FedericoPettinella: в [API JList] (http://docs.oracle.com/javase/8/docs/api/javax/swing/JList.html) вы вызываете 'setCellRenderer (...)' на JList и перейдите в средство визуализации: 'myList.setCellRenderer (новый MyCellRenderer()); –