Java JList以列出ArrayList对象的toString()

Java JList以列出ArrayList对象的toString(),java,swing,user-interface,arraylist,jlist,Java,Swing,User Interface,Arraylist,Jlist,我有一个对象的ArrayList(一个名为OrderItem的类)。OrderItem中有一个toString()方法 我还有一个GUI类,其中有一个JList。我想列出ArrayList元素的所有toString() 我知道,对于字符串的arrayList,您可以使用以下命令使它们显示在JList中: ArrayList<String> myArrayList = new ArrayList<String>(); myArrayList.add("Value1");

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

我还有一个GUI类,其中有一个JList。我想列出ArrayList元素的所有toString()

我知道,对于字符串的arrayList,您可以使用以下命令使它们显示在JList中:

ArrayList<String> myArrayList  = new ArrayList<String>();
myArrayList.add("Value1");
myArrayList.add("Value2");
myJList = new JList(myArrayList.toArray());
ArrayList myArrayList=new ArrayList();
myArrayList.add(“价值1”);
myArrayList.add(“价值2”);
myJList=newjlist(myArrayList.toArray());
但是我想列出对象arrayList的toString()方法,例如:

ArrayList<OrderItem> myArrayList  = new ArrayList<OrderItem>();
myJList = new JList(myArrayList.toString());
ArrayList myArrayList=new ArrayList();
myJList=newjlist(myArrayList.toString());
我意识到JList可能不支持这样的功能,或者存在某种逻辑问题。如果是这样,你能告诉我为什么吗?因为字符串的arrayList应该以类似于对象arrayList的toString()的方式工作。我只想为元素提取一个字符串值,并在列表中使用这些值

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


非常感谢

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

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

默认情况下,
JList
显示对象的
toString
值。因此,无需将对象转换为字符串

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

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

听起来您只是试图在列表中显示对象的toString方法,而不是完整对象;换句话说,您只需要显示字符串表示。而不是数组表示

您可以重写数组以表示要显示的数据(在构建数组时提供“toString”构造):

ArrayList myNewArrayList=newarraylist();
对于(int i=0;i
然后在面板中使用新数组,并使用索引作为对象数组的引用,以进行对象处理


LLB

啊,非常感谢!我愚蠢地从未尝试过用添加字符串的方式将ArrayList中的元素添加到JLList中。换句话说,我没有意识到默认情况下它会显示toString。干杯=)
ArrayList<> myNewArrayList =  new ArrayList<OrderItem>();
for (int i=0; i< oldArray.size(); i++)
{    
    newArray.add(oldArray.get)i).toString(); 
}
    ...  rest of code  ...