Я использую Eclipse, программируя на Java. Проблема:ArrayList для JList - более одного элемента объекта
Это, как я хочу, чтобы мой JList для отображения:
1 - Dante
2 - William
3 - Jaime
etc...
Теперь цифры являются идентификаторы объектов, а также имена, ну, имена.
ArrayList называется TraitList.
Это то, что я получаю, когда я ставлю, что как свойство «модели» в JList из окна Builder в Eclipse:
TraitL.setModel(new AbstractListModel() {
String [] values = new String[] {"1 - Dante", "2 - William", "3 - Jaime"};
public int getSize() {
return values.length;
}
public Object getElementAt(int index) {
return values[index];
}
});
Так я изменил его:
TraitL.setModel(new AbstractListModel() {
String [] values = new String [];
for (int jln = 0; jln < TraitList.size(); jln++){
values [jln] = (TraitList.get(jln).id + " - " + TraitList.get(jln).Name);
}
public int getSize() {
return values.length;
}
public Object getElementAt(int index) {
return values[index];
}
});
Это не работает. Я пробовал десятки вариантов. Никто не работал. Итак, как я могу сделать несколько элементов объекта, отображаемых этим списком? Мне все равно, если это DefaultListModel или AbstractListModel, или даже ListModel. Спасибо заранее.
EDIT: Ошибки всех строк с тем, что я пытался в следующем изображении:
БОНУС ВОПРОС: Как сделать, нажав на элемент этого списка «actionPerformed» так что-то происходит после того, как я нажму?
Этот вопрос будет легче ответить, если вы действительно скажете, какие ошибки вы получаете.Во всяком случае, один из возможных источников проблем (кроме ошибки, упомянутой в ответе Гильерме) будет заключаться в том, являются ли 'id' и' Name' общедоступными полями в классе, которые 'TraitList' является списком. Если это не так, вам может понадобиться использовать их получатели для их извлечения. И если они есть, вы, вероятно, должны прочитать об инкапсуляции. –
Добавлены ошибки с предложением Гильерме на вопрос как образ. Кроме того, я не дал классификаций, открытых или закрытых для полей в классе Trait, поэтому, я думаю, они публичные. Я прочитаю инкапсуляцию. Изучил его давным-давно, не помню его четко. – Werneck