Dr.Colossos: implementierungs-technische Frage zu JList/AbstractListModel

Beitrag lesen

Hi,

ich hätte eine Frage an die Java-Profis.

Ich kann ja einer Swing-JCombobox ein Model übergeben, dass z.B. aus einem Vector von Personen erstellt wurde, pseudocode-mäßig in dieser Art.

myPersons = new Vector();

myPersons.add("Hans", "Meier");
myPersons.add("Hugo", "Schlossgespenst");
myPersons.add("Martha", "Pfahl");

myModel = new DefaultComboBoxModel(myPersons);

jComboBox.setModel(myModel);

... und fertig ist meine ComboBox mit Inhalt.

Was ich nicht verstehe ist, wie es Java/Swing gelingt, dass wenn ich nun eine der Personen ändere, die Combobox automatisch upgedated wird, z.B. ...

myPersons.getElementAt(0).setLastName("newLastName");

Ohne extra Zutun ist der ComboBox-Inhalt aktualisiert.

Ich weiß an dem (DefaultComboBox)Model hängen Listener, aber nicht doch an meiner (eigens-gebastelten) Person-Klasse. Wie weiß der Vector (Basis des Models) bzw. das Model selbst dass sich ein Person-Objekt geändert hat?

Wer kann mir das erklären, wo da ein Listener hängt, und von wo aus der angesteuert wird?

Besten Dank im Voraus!