2014-09-19 55 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