我正在使用Eclipse,使用Java进行编程。问题:ArrayList to JList - 多个对象元素
这是我要显示我的JList:
1 - Dante
2 - William
3 - Jaime
etc...
现在,数字对象的ID和名称,以及,名称。
ArrayList被命名为TraitList。
这是我所得到的,当我把那个作为“模式”在JList中从窗口生成器在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。 在此先感谢。
奖金的问题: 如何让我点击此列表中的元素的“的actionPerformed”,所以有事点击后?
如果你真的说出了什么错误,这个问题会更容易回答。无论如何,问题的一个可能的来源(除Guilherme的答案中提到的错误之外)是'id'和'Name'是否是TraitList列表中类的公共字段。如果他们不是,那么你可能需要使用他们的获得者来检索他们。如果他们是,你应该阅读封装。 –
Guilherme对这个问题的建议添加了错误作为图像的错误。 此外,我还没有给出Trait类中字段的公共或私有分类,所以我猜它们是公开的。我会读封装。很久以前就读过,不记得清楚。 – Werneck