2012-08-02 88 views
1

jList2.setListData(jList1.getSelectedValues());
我用這個,將數據從jlist1傳輸到jlist2。但我想從jlist1中刪除傳輸的數據。它如何。java swing jlist數據傳輸

回答

1

第一個:getSelectedValues()已棄用,請使用getSelectedValuesList()將它們作爲使用泛型的List。其次,在創建JList之前創建一個DefaultListModel,以便您可以添加/刪除/刪除它,例如,

DefaultListModel<String> model = new DefaultListModel<String>(); 
DefaultListModel<String> model2 = new DefaultListModel<String>(); 
JList<String> list1 = new JList<>(model); 
JList<String> list2 = new JList<>(model2); 

... 

for(String s : list1.getSelectedValuesList()){ 
    model2.addElement(s); 
    model.removeElement(s); 
} 

記住必須事件調度線程上執行更改列表和模型

+0

+1專注於模型。 – trashgod 2012-08-02 16:50:05

1

有兩種方式

  • 看拖累甲骨文頁的降教程

  • on mouseDragged從一個JList中刪除selectedItem並添加到秒,注意這個想法需要更好的關於Java Swing的知識

+0

OP從未實際指出正在使用拖放操作,問題可能適用於數據在列表之間移動的任何場景。 – James 2012-08-02 14:54:42

+0

有替代品是很好的;我也會考慮類似[this](http://wiki.netbeans.org/wiki/images/a/a3/Persistence-Entity-1_UsingVWICEfacesWithNetBeans.gif)。 – trashgod 2012-08-02 16:49:51