Ich habe eine JList, die ein DefaultListModel verwendet.Java - Aktualisieren der JListe nach dem Ändern eines Objekts
Ich füge dann Werte zum Modell hinzu, die dann in der JList erscheinen. Ich habe einen MouseListener erstellt, mit dem der Benutzer die aktuelle Benutzernummer der ausgewählten Person bearbeiten kann.
Ich habe überprüft, dass das tatsächliche Objekt des Datensatzes geändert wird, und es ist. Das einzige Problem, das ich habe, ist, die aktuelle Jlist zu aktualisieren, um die neuen Werte dieses Objekts anzuzeigen.
Snippets des aktuellen Code ich habe, sind:
Erstellen der JList und DefaultTableModel:
m = new DefaultListModel();
m.addListDataListener(this);
jl = new JList(m);
jl.addMouseListener(this);
Aktualisierung des Objekts:
String sEditedNumber = JOptionPane.showInputDialog(this, "Edit number for " + name, number);
if (sEditedNumber != null) {
directory.update (name, sEditedNumber);
}
Und (wenn jl ist die JList und m ist das DefaultTableModel):
public void contentsChanged(ListDataEvent arg0) {
jl.setModel(m);
}
Warum verwenden Sie einen 'MouseListener' anstelle eines [' ListSelectionListener'] (http://docs.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html)? – trashgod