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