JList to List toString()对象ArrayList

问题描述:

我有一个ArrayList对象(一个名为OrderItem的类)。 OrderItem中有一个toString()方法。JList to List toString()对象ArrayList

我也有一个GUI类,我有一个JList。我想列出arrayLists元素的所有toString()。

我知道,对于一个字符串数组列表,你可以让他们展示在JList中使用:

ArrayList<String> myArrayList = new ArrayList<String>(); 
myArrayList.add("Value1"); 
myArrayList.add("Value2"); 
myJList = new JList(myArrayList.toArray()); 

但我想列出了toString()的对象数组列表的方法,即有类似:

ArrayList<OrderItem> myArrayList = new ArrayList<OrderItem>(); 
myJList = new JList(myArrayList.toString()); 

我意识到有可能JList不支持这样的功能,或者存在某种逻辑问题。如果是这样,你能告诉我为什么?因为字符串arrayList应该以类似于对象arrayList的toString()的方式工作。我只想提取元素的String值并将这些值用于列表。

我在网上搜索了一个答案,一直没能找到帮助我的答案,所以我来这里试图解决这个问题。

非常感谢!

默认情况下,JList示出了对象的toString值。所以不需要将对象转换为字符串。

如果需要,您可以通过创建自定义单元格渲染器来覆盖JList的行为。有关更多详细信息,请参阅How to Use Lists

+0

啊,非常感谢!我愣神从来没有经历过尝试添加一个ArrayList中的JList的在你的字符串添加相同方式的元素。在换句话说,我没有意识到它表明toString默认。干杯=) – DanMc 2012-04-25 17:18:09

您可以将列表转换为数组,然后将其放入列表中。

ArrayList<OrderItem> myArrayList = new ArrayList<OrderItem>(); 
OrderItem[] items = new OrderItem[myArrayList.size()]; 
myArrayList.toArray(items); 
myJList = new JList(items); 

实际上,toArray()方法显示arrayList中的每个项目。 JList默认不显示任何内容。您必须根据您的需要设置可见性。

这听起来像你试图简单地显示列表中的对象的toString方法而不是完整的对象;换句话说,你只是想显示字符串表示。而不是数组表示。

您可以重写数组来表示要显示(提供“的toString构造为阵列内置)的数据:

ArrayList<> myNewArrayList = new ArrayList<OrderItem>(); 
for (int i=0; i< oldArray.size(); i++) 
{  
    newArray.add(oldArray.get)i).toString(); 
} 
    ... rest of code ... 

然后使用新的数组中的面板,并使用索引参照对象数组对象处理。

HTH LLB