Java 移动项目时需要帮助吗

Java 移动项目时需要帮助吗,java,list,Java,List,我试图向上移动列表中的一个项目,但它没有按我想要的方式工作。我选择的元素在与前面的元素交换位置后仍然保留。我正在使用Jlist listTasks是一个JLIst 和 listModel就是listModel 例如,如果我有 1 2 作为列表,在我选择2并单击向上按钮后,我得到 2 1 2 这是代码片段: public void mouseClicked(MouseEvent e) { int id = 0; if(e.getSource() == this.

我试图向上移动列表中的一个项目,但它没有按我想要的方式工作。我选择的元素在与前面的元素交换位置后仍然保留。我正在使用Jlist

listTasks是一个JLIst 和 listModel就是listModel

例如,如果我有

1
2
作为列表,在我选择2并单击向上按钮后,我得到

2
1
2
这是代码片段:

public void mouseClicked(MouseEvent e) {
        int id = 0;
        if(e.getSource() == this.lblUpArrow){
            id = this.listTasks.getSelectedIndex();
            if((id > 0 ) && (this.listModel.size() != 0)){
                Object value = this.listModel.getElementAt(id);
                Object previousValue = this.listModel.getElementAt(id - 1);
                this.listModel.insertElementAt(value.toString(), (id - 1));

                this.listTasks.remove(id);
                this.listModel.insertElementAt(previousValue.toString(), (id));

                this.listModel.remove(id + 1);

            }

        }
    }

谢谢你的帮助

您只需删除元素即可移动并将其重新插入当前位置上方。不需要交换。

您能解释一下为什么要从这个.listTasks中删除项目,但要向这个.listModel中添加项目吗?谢谢您的回复。我首先尝试从listModel中删除,但它不起作用,因此我尝试了listTasks,如果它可能会解决问题,您还应该意识到,您的代码正在执行一个插入操作,该插入操作将使真正应称为index的id值无效。