2017-03-10 47 views
0

我有兩個ListModels:listModelRight和listModelLeft。我只是想,那listModelRight = ListModelLeft,但即使這個不工作。我該怎麼做?如何將一個ListModel轉移到另一個Java中

代碼示例:

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

欲瞭解更多信息爲什麼: 我試圖使一個過濾器,其中包括了兩次JList的和5個按鈕。這些按鈕用於將FilterVariables從左向右或向後放。 5個按鍵的意思是:

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

如果你點擊>>或< <所有項目應當從去清單到其他列表。正因爲如此,我將使用原始Inputitems(以正確的順序),我用它來填充項列表...

+0

確定。我有兩個JList(10和11)。該列表用於選擇變量。在左側列表中都可以選擇,在右側列表中選擇。通過點擊按鈕,右側列表中的項目應該「進入」左側列表,右側列表必須清除。但展位清單最後是清楚的。 –

回答

1
listModelFilterleft = listModelFilterright; 

所以,現在,這兩個變量引用相同,唯一的對象。

List10.setModel(listModelFilterleft); 

第一個列表使用了獨特的對象作爲模型

listModelFilterright.clear(); 

而現在,沒有什麼再在這個模型

jList11.setModel(listModelFilterright); 

而且現在第二列表使用的是一樣的,獨特的空物體作爲其模型。

您需要兩個discinct模型。你想從第一個元素中刪除所有元素,並將它們添加到第二個元素中。

+0

好吧,這意味着,如果我清除第3行中的Filterright,第1行中的Filterleft清除?我如何複製內容?我是否真的從Modellist中讀取所有元素並將元素添加到另一個元素中?最後,我清楚了嗎?簡短:通過使用addElement,removeElement,clear()和循環? –

+0

是的,你應該從第一個元素中移除元素,然後將元素添加到第二個元素中。 –

+0

謝謝。有用! –

0

這裏我的解決辦法: 它的工作原理,如果u想有: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; 

}

相關問題