我正在尝试向上移动列表中的项目,但它不按我想要的方式工作。我选择的元素在与前面的元素交换位置后仍然保留。我正在使用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);
}
}
}
感谢您的帮助。
答案 0 :(得分:0)
您只需要移除要移动的元素并将其重新插入当前位置。无需交换。