我有一个Jlist
,DefaultListModel
包含来自XML的数据。
我希望能够更改Jlist
中项目的名称。但是DefaultListModel
没有更新方法。
因此,如果用户点击名称,则应编辑名称。
到目前为止,我想如果我获得该项目的位置并将其删除并使用新数据进行更新。但是,如果我用更新的名称更新它将被放在与旧的相同的位置或将被搞砸的东西?
我的代码:
private class EditName extends AbstractAction {
public EditName() {
putValue(NAME, "Change Name");
putValue(SHORT_DESCRIPTION, "Some short description");
}
public void actionPerformed(ActionEvent e) {
int x = objTypeJList.getSelectedIndex();
String newName = JOptionPane.showInputDialog("New Name?");
if (x >= 0) {
String oldName = ReadXMLFile.getInstance().getModel().getElementAt(x).toString();
ReadXMLFile.getInstance().getModel().removeElementAt(x);
objTypeJList.setModel(ReadXMLFile.getInstance().getModel());
}
// newText I wanna add into the the location I edit
}
}
答案 0 :(得分:3)
“我希望能够更改Jlist中项目的名称。但
DefaultListModel
没有更新方法。”
是什么让你这么说的?您是否仔细查看了docs?
您认为这种方法有什么作用?
public void setElementAt(E element, int index)
- 将此列表的指定索引处的组件设置为指定的元素。 该位置的上一个组件将被丢弃。 OR
public E set(int index, E element)
- 使用指定的元素替换此列表中指定位置的元素。