Java JList以列出ArrayList对象的toString()
我有一个对象的ArrayList(一个名为OrderItem的类)。OrderItem中有一个toString()方法 我还有一个GUI类,其中有一个JList。我想列出ArrayList元素的所有toString() 我知道,对于字符串的arrayList,您可以使用以下命令使它们显示在JList中: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<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 ...