如何将一个列表模型转移到Java的另一个列表中



我有两个listModels:listModelright和listmodelleft。我只想,那个listModelright = ListModelleft,但即使这也不起作用。我该怎么办?

代码示例:

listModelFilterleft = listModelFilterright;
jList10.setModel(listModelFilterleft);
listModelFilterright.clear();
jList11.setModel(listModelFilterright);

有关更多信息的原因,为什么:我试图制作一个过滤器,由两个Jlist和5个按钮组成。这些按钮是将滤波器变量从左侧到右或向后放置。5个按钮的意思是:

> from left to right
>> all from left to right
<> change left and right
<< all from right to left
< from right to left

如果您单击>>或&lt;&lt;所有项目都应从列表到其他列表。因此,我将使用原始inputitems(按正确的顺序),我用来用项目填充列表...

listModelFilterleft = listModelFilterright;

现在,这两个变量引用相同的独特对象。

List10.setModel(listModelFilterleft);

第一个列表使用该唯一对象作为其模型

listModelFilterright.clear();

现在,此模型中没有什么了

jList11.setModel(listModelFilterright);

现在第二个列表使用的是与其模型相同的独特,空的对象。

您需要两个脱节模型。您需要从第一个元素中删除所有元素,然后将它们添加到第二个元素中。

在这里我的解决方案:如果您想拥有:ListModel2 = ListModel1;,它有效只需写:ListModel2 = setListModel1ToListModel2ByOverrideListModel2 (listModel1, listModel2);

public DefaultListModel setListModel1ToListModel2ByOverrideListModel2 (DefaultListModel listModel1, DefaultListModel listModel2){
     listModel2.clear();
     for (int i = 0; i < listModel1.getSize(); i++){
         listModel2.addElement(listModel1.getElementAt(i));
     }
 return listModel2;

}

最新更新