Java 我可以合并两个模型吗?

Java 我可以合并两个模型吗?,java,swing,jlist,defaultlistmodel,Java,Swing,Jlist,Defaultlistmodel,我正在尝试在java中组合两个defaultListModels,以便将该模型设置为JList。这个程序基本上是使用GUI在购物车中添加和删除物品。当我按下add按钮时,它不应从shoppingCart中删除项目,而是添加到该列表中 以下是我在addButton块中的代码: DefaultListModel booksToAdd = new DefaultListModel(); booksToAdd.addElement(availableBooks.getSelectedValuesLis

我正在尝试在java中组合两个defaultListModels,以便将该模型设置为JList。这个程序基本上是使用GUI在购物车中添加和删除物品。当我按下add按钮时,它不应从shoppingCart中删除项目,而是添加到该列表中

以下是我在addButton块中的代码:

DefaultListModel booksToAdd =  new DefaultListModel();
booksToAdd.addElement(availableBooks.getSelectedValuesList());

DefaultListModel booksAdded = new DefaultListModel();
booksAdded.addElement(shoppingCart.getModel());


// this is where it does not work.  I know I cannot just add these two, but I need
//some way to combine them.

shoppingCart.setModel(booksAdded + booksToAdd);

基本的答案是做一些像

for (int index = 0; index < from.getSize(); index++) {
    to.addElement(from.getElementAt(index));
}
DefaultListModel booksToAdd = new DefaultListModel();
DefaultListModel booksAdded = new DefaultListModel();
//...
DefaultListModel combined = new DefaultListModel();

addTo(booksToAdd, combined);
addTo(booksAdded, combined);

现在,如果您经常做这类事情,您可以设计自己的
ListModel
,它可以通过构造函数获取一个或多个
ListModel
s并将它们的元素添加到您的元素中,和/或提供一个“add”方法来完成。在任何情况下,基本的想法都是一样的。基本的答案是做一些像

for (int index = 0; index < from.getSize(); index++) {
    to.addElement(from.getElementAt(index));
}
DefaultListModel booksToAdd = new DefaultListModel();
DefaultListModel booksAdded = new DefaultListModel();
//...
DefaultListModel combined = new DefaultListModel();

addTo(booksToAdd, combined);
addTo(booksAdded, combined);

现在,如果您经常做这类事情,您可以设计自己的
ListModel
,它可以通过构造函数获取一个或多个
ListModel
s并将它们的元素添加到您的元素中,和/或提供一个“add”方法来完成。在任何情况下,基本思想都是一样的

谢谢你的工作!只有一个问题,当结果出来时,它也给了我一些类似javax.swing.JList的东西$3@43692750在结果中。有没有办法解决这个问题?输出表明您使用了对象的
toString
方法,您是如何使用生成的
JList
的,这样它就可以打印出来了!只有一个问题,当结果出来时,它也给了我一些类似javax.swing.JList的东西$3@43692750在结果中。有没有办法解决这个问题?输出表明您使用了对象的
toString
方法,您如何使用生成的
JList
,所以它会打印出来