我有一个Catalog类型的对象列表。类Catalog
有一个名为getName
的方法,它返回对象的名称。
我有List<Catalogue> catalogList = /*code to retrieve list*/
我尝试了这个但是没有用
JList jlist = new JList(catalogList.toArray());
我的问题是如何在Jlist中显示名称?
答案 0 :(得分:4)
覆盖Catalog类中的toString()方法:
@Override
public String toString() {
return getName();
}
答案 1 :(得分:1)
您的JList包含Catalog
的实例。默认情况下,它使用其包含的对象的toString()
方法来显示它们。因此,您的第一个选择是覆盖目录中的toString()
并使其返回名称。
另一个更通用且更灵活的选项是设置自定义单元格渲染器,列表将调用该渲染器以显示每个Catalog对象。 Swing教程有examples。
答案 2 :(得分:0)
您希望您的jlist只包含catalogList中元素的名称吗?因为我看到你正在尝试将目录元素添加到Jlist
JList jlist = new JList();
for(int i=0;i<catalogList.size();i++){
jlist.add(catalogList.get(i).getName();
}
这可能是一种更有效的方式,但我认为这更容易理解