在Java中从JList中删除所选项目

在Java中从JList中删除所选项目,java,jlist,Java,Jlist,如何将左列表中选定的内容删除到右列表中 我在YouTube上看了一个教程,那个家伙在那里编写了这个代码,但看起来不太好。我的意思是,当我将左列表中的某些内容添加到右列表中时,我需要删除左列表中选中的内容 button = new JButton("Move -->"); button.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent event){

如何将左列表中选定的内容删除到右列表中

我在YouTube上看了一个教程,那个家伙在那里编写了这个代码,但看起来不太好。我的意思是,当我将左列表中的某些内容添加到右列表中时,我需要删除左列表中选中的内容

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

        }
    }
);
所以,这个按钮将我在左侧列表中选择的内容放到右侧列表中。但正如我所说,我想删除从左侧列表中选择的项目。因此,它只会出现在右侧列表中,而不会出现在左侧列表中

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

        }
    }
);

我怎样才能做到这一点?

您采用的方法不错,而且它确实满足了您的需求:

button.addActionListener((ActionEvent e) ->
{
    rightlist.setListData(leftlist.getSelectedValues());
现在,您需要从底层的
ListModel
中删除这些元素。假设您有一个
DefaultListModel
,您可以这样做:

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

有关更多信息,请参阅For
DefaultListModel

setListData
设置列表中的所有数据。因此,一种方法是保留一个左列表和一个右列表,并使用它们来更新JList.Duplicate。答案可以在这里找到:谢谢大家,对不起,我是新的,对不起。谢谢