2014-09-19 47 views
-1

如何將左列表中選擇的內容移除到右列表中?從Java中的JList中刪除所選項目

我在YouTube上看過一個教程,那個人做了這段代碼,但看起來不太好。我的意思是,當我將左側列表添加到右側列表中時,我需要刪除左側列表中選定的內容。

button = new JButton("Move -->"); 
button.addActionListener(
    new ActionListener(){ 
     public void actionPerformed(ActionEvent event){ 
      rightlist.setListData(leftlist.getSelectedValues()); 

     } 
    } 
); 

所以,這個按鈕把我在左邊列表中選擇的東西放到右邊的列表中。但正如我所說,我想刪除從左側列表中選擇的項目。所以它只會出現在右側列表中,而不會出現在左側列表中。

我該怎麼做?

+0

'setListData'設置列表中的所有數據。所以一種方法是保留一個左列表和一個右列表,並使用它們來更新JList。 – Teepeemm 2014-09-19 19:26:22

+0

重複。可以在這裏找到答案:http://stackoverflow.com/questions/9402658/delete-selected-item-from-jlist – MarGar 2014-09-19 19:29:16

+0

謝謝大家,抱歉,轉發,即時新,對不起。謝謝! – Sharkhead 2014-09-19 19:53:26

回答

0

你的做法是不壞的,它實際上你想要做什麼:

button.addActionListener((ActionEvent e) -> 
{ 
    rightlist.setListData(leftlist.getSelectedValues()); 

現在,你需要從底層ListModel刪除這些元素。假設你有一個DefaultListModel,你可以做這樣的:

DefaultListModel model = (DefaultListModel) leftlist.getModel(); 
    for (Object elem : leftlist.getSelectedValues) 
     model.removeElement(elem); 
} 

欲瞭解更多信息,請參閱JavaDocDefaultListModel