在将数组(-s)添加到JList
后,如何在ListModel
中更改元素的视图。
需要:
2.0 11.0 1.0
有:
[D@198dfaf
我真的不想在添加之前和从JList
获取之后使用“数组到字符串”转换。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
您可以使用ListCellRenderer来实现此目的。它允许您返回一个Component,它表示您在JList模型中放置的值。
默认的CellRenderer是DefaultListCellRenderer,它基本上是JLabel的扩展,具有所有正确的外观和放大器。感觉设置已经设置。因此,您可以扩展DefaultListCellRenderer并在返回值上设置数组文本。
答案 1 :(得分:0)
作为更改渲染器或覆盖toString()
的替代方法,您可以考虑为添加到列表中的对象添加视图适配器。类似于这个简化示例的东西:
class ArrayListViewAdapter {
Object[] list;
public ArrayListViewAdapter(Object[] list){
this.list = list;
}
@Override
public String toString(){
return StringUtils.join(list, " ");
}
}
然后将项目添加到模型中:
model.addElement(new ArrayListViewAdapter(new Integer[]{1, 2, 3}));