java - 将 Jlist 的所有对象存储到 Array<Object> 中

标签 java arraylist jlist

我一直在到处寻找,但找不到解决这个问题的方法。 我面临的问题很简单,我创建了一个 ArrayList ..并将该对象转移到 Jlist1 中(不知道我是否做错了什么,但我已经转移了 ArrayList 的所有对象,并将其作为字符串对象附加在此 jList 上字段)。我有一个按钮,用于将此 jList1 的选定项目传输到另一个 jList2 中。我想为该按钮提供存储从 jList1 传输到 jList2 中的对象的功能... 下面我将打印我解释的问题的最重要部分。

jList1代码的填充:

 ArrayList<Item> itemlist = items.getItems();

for(Item d : itemlist){
        itemlist_model.addElement( d.getItemID()+"      "+ d.getItemName()+"           " +d.getItemPrice() + "$"  );
        }//end for 
        ItemList_jList.setModel(itemlist_model);
}

我编写的用于将所选项目从 jList1 传输到 jList2 的代码:

for(Object d: ItemList_jList.getSelectedValuesList()){
    //System.out.println(d);
    basketlist_model.addElement(Arrays.toString(ItemList_jList.getSelectedValues()) + "" );
    }
    StoreBasketList_jList.setModel(basketlist_model);
}

我正在尝试改进的代码,以便将 jList2 对象存储到 ArrayList 中:

ArrayList<Item> ItemInBasket = new ArrayList<Item>();

 int len = basketlist_model.getSize();
                for (int i = 0; i < len; i++) {
                bw.write(basketlist_model.getElementAt(i).toString());
                ItemInBasket.add((Item) basketlist_model.getElementAt(i));
}

为了使代码更容易理解: jList1 是 ItemList_jList .. jList2 是 StoreBasketList_jList .. 我试图存储这些对象的 ArrayList 是 ArrayList ItemInBasket 。 我花了很多时间试图弄清楚,如果有人能帮助我,我将不胜感激!

注意第二个 jList 不为空,这证明了这一点: enter image description here

int counterelement = StoreBasketList_jList.getModel().getSize(); System.out.println("The number of items in jList: "+counterelement); 
for (int i = 0; i < StoreBasketList_jList.getModel().getSize(); i++) {
ItemInBasket.add( (Item)StoreBasketList_jList.getModel().getElementAt(i)); 
System.out.println(i);
}

最佳答案

使用 JList.getModel() https://docs.oracle.com/javase/8/docs/api/javax/swing/JList.html#getModel--

JList jl = new JList(new Object[]{"a","b","c"});
System.out.println("jl.getModel().getSize() = " + jl.getModel().getSize());
ArrayList<Object> arrayList = new ArrayList<Object>();
for (int i = 0; i < jl.getModel().getSize(); i++) {
    arrayList.add(jl.getModel().getElementAt(i));
}
System.out.println("arrayList = " + arrayList);

打印输出:

jl.getModel().getSize() = 3
arrayList = [a, b, c]

关于java - 将 Jlist 的所有对象存储到 Array<Object> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34887235/

相关文章:

Java 下拉 list

java - 从 JList 中删除元素不起作用

java - Clojure 中的 Hdfs 文件夹大小

java - 如何使用 axis2 和 eclipse 将方法添加到现有的 Web 服务开发中

java - 在同一个Java数组中调用扩展类函数

java - 如何加载从 ObjectInputStream 读取对象时找不到的类

java - 使用 arraylist 随机排列范围

java - 在 Java 中向 ArrayList 添加和访问元素时出现问题

java - 在复杂的 HashMap 中使用 StringJoiner

java - 如何编写自己的 ListSelectionEvent?