0

我有两个 ListModel: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

如果单击 >> 或 <<,所有项目都应从 on 列表转到另一个列表。因此,我将使用原始的 Inputitems(以正确的顺序),我用它来填充列表中的项目......

4

2 回答 2

1
listModelFilterleft = listModelFilterright;

所以现在,这两个变量引用了同一个唯一的对象。

List10.setModel(listModelFilterleft);

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

listModelFilterright.clear();

而现在,这个模型中没有任何东西了

jList11.setModel(listModelFilterright);

现在第二个列表使用相同的、唯一的、空的对象作为它的模型。

你需要两个不同的模型。您想从第一个元素中删除所有元素,并将它们添加到第二个元素。

于 2017-03-10T22:13:36.307 回答
0

这是我的解决方案:它有效,如果你想拥有: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;

}

于 2017-03-10T22:56:17.050 回答