Search code examples
javaswingobjectjlistdefaultlistmodel

Java - Updating JList after changing an object


I have a JList which uses a DefaultListModel.

I then add values to the model which then appear in the JList. I have created a MouseListener which (when double clicked) allows the user to edit the current user number of that person they have selected.

I have checked that the actual object of that record is being changed, and it is. The only issue I'm having is getting the actual Jlist to update to show the new values of that object.

Snippets of the current code I have are:

Creating the JList and DefaultTableModel:

m = new DefaultListModel();
m.addListDataListener(this);
jl = new JList(m);
jl.addMouseListener(this);

Updating the object:

String sEditedNumber = JOptionPane.showInputDialog(this, "Edit number for " + name, number);
if (sEditedNumber != null) {
    directory.update (name, sEditedNumber);
}

And (when jl is the JList and m is the DefaultTableModel):

public void contentsChanged(ListDataEvent arg0) {
        jl.setModel(m);
    }

Solution

  • You need to call fireContentsChanged() on the ListModel.