我正在使用 Eclipse,用 Java 编程。问题:
这就是我希望我的 JList 显示的方式:
1 - Dante
2 - William
3 - Jaime
etc...
现在,数字是对象的 ID,名称就是名称。
ArrayList 被命名为 TraitList。
当我将它作为 Eclipse 中的 Window Builder 的 JList 中的“模型”属性放置时,这就是我得到的:
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。提前致谢。
奖励问题:如何使单击此列表的元素成为“actionPerformed”,以便在单击它后发生某些事情?