2014-01-23 3 views
0

У меня есть Jlist с DefaultListModel с данными из XML.Как обновить имя строки элемента внутри DefaultListModel

Я хочу иметь возможность изменить название изделия в 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

'Но если я обновляюсь, тогда новое имя будет помещено в то же место, что и старое, или все будет запутано? Попробуйте и сообщите нам, что произойдет. Вы учитесь, пытаясь. Почему ваш код удаляет один элемент, а затем обновляет всю модель? – camickr

ответ

3

«. Я хочу, чтобы иметь возможность изменить название пункта в JList, но DefaultListModel не метод обновления»

Что вы говорите так? Вы внимательно посмотрели на docs?

Как вы думаете, что этот метод делает?

  • public void setElementAt(E element, int index) - Устанавливает компонент в указанном индексе этого списка как заданный элемент. Предыдущий компонент в этом положении отбрасывается.

ИЛИ

  • public E set(int index, E element) - Заменяет элемент в указанной позиции в этом списке с указанным элементом.
+0

Правильно. Lol Я только прочитал имена методов. – Sembrano

Смежные вопросы