Hi,
mich würde interessieren, welche Methode/Listener/whatever aufgerufen wird, wenn im ListModel, das eine JList beobachtet, etwas neues geaddet wird, also die Methode addElement(Object element) aufgerufen wird.
Die Methode addElement() muss ja irgendwie der JList Bescheid geben, dass sie jetzt aufgerufen wurde. In der API wird leider nicht genau beschrieben, wie die interne Synchronisation zwischen einer JList und seinem ListModel funktioniert.
Ich brauche aber dringend die Methode, die aufgerufen wird, wenn etwas geaddet wird, weil ich da noch etwas dazu schreiben muss.
Ich kann nichts anfangen mit zB einem ContainerListener oder irgendwelchen Listener, die MEthoden anbieten die aufgerufen werden, wenn jetzt irgendwas mit der Liste passiert.
Was ich brauche ist nämlich nicht irgendwas (wie ComponentResized zB), sondern "es wurde ein Element in dem ListModel geaddet".
Wo finde ich diese Methode, hat Sun die quasi für den Anwender komplett gesperrt?
Falls der Sinn nicht ganz klar ist: Ich will wann immer ein neues Element im ListModel geaddet wurde, zB sowas machen wie einen kleinen Knopf aufblinken lassen, den die Liste kennt. Oder irgendwas mit dem ScrollPane machen, auf dem die Liste liegen könnte.
Sowas halt, und dafür brauch ich die Methode die immer aufgerufen wird intern, um sie zu überschreiben, halt zB:
Hoffe ist klar, was ich mein. Wie komm ich an die Methode, oder anders gefragt: Gibt's so ne Methode überhaupt? Muss ja eigentlich, oder stell ich mir das falsch vor? Wenn es so eine Methode nicht gibt, wie schafft es dann die JList überhaupt immer neue Elemente anzuzeigen....
Danke!
PS: Achso, mir ist klar dass ich diese zusätzlichen Dinge auch gleich in die addElement() Methode des ListModels schreiben könnte, aber dann müsste das Model so Dinge wie einen Knopf kennen, und das hat damit eigentlich nix zu tun, das heisst so will ich das nicht machen.
edit:
Also habs nun mit einem ListCellRenderer gemacht, aber such noch immer nach der Methode, weil es eigentlich unnötig viel Code ist dafür extra nen eigenen ListCellRenderer zu machen..
mich würde interessieren, welche Methode/Listener/whatever aufgerufen wird, wenn im ListModel, das eine JList beobachtet, etwas neues geaddet wird, also die Methode addElement(Object element) aufgerufen wird.
Die Methode addElement() muss ja irgendwie der JList Bescheid geben, dass sie jetzt aufgerufen wurde. In der API wird leider nicht genau beschrieben, wie die interne Synchronisation zwischen einer JList und seinem ListModel funktioniert.
Ich brauche aber dringend die Methode, die aufgerufen wird, wenn etwas geaddet wird, weil ich da noch etwas dazu schreiben muss.
Ich kann nichts anfangen mit zB einem ContainerListener oder irgendwelchen Listener, die MEthoden anbieten die aufgerufen werden, wenn jetzt irgendwas mit der Liste passiert.
Was ich brauche ist nämlich nicht irgendwas (wie ComponentResized zB), sondern "es wurde ein Element in dem ListModel geaddet".
Wo finde ich diese Methode, hat Sun die quasi für den Anwender komplett gesperrt?
Falls der Sinn nicht ganz klar ist: Ich will wann immer ein neues Element im ListModel geaddet wurde, zB sowas machen wie einen kleinen Knopf aufblinken lassen, den die Liste kennt. Oder irgendwas mit dem ScrollPane machen, auf dem die Liste liegen könnte.
Sowas halt, und dafür brauch ich die Methode die immer aufgerufen wird intern, um sie zu überschreiben, halt zB:
Code:
@Override
public void methodWhichIsCalledWheneverSthIsAddedToListModel(){
super.methodWhichIsCalledWheneverSthIsAddedToListModel();
button.aufblinken();
scrollPane.irgendwasMachen();
}
Danke!
PS: Achso, mir ist klar dass ich diese zusätzlichen Dinge auch gleich in die addElement() Methode des ListModels schreiben könnte, aber dann müsste das Model so Dinge wie einen Knopf kennen, und das hat damit eigentlich nix zu tun, das heisst so will ich das nicht machen.
edit:
Also habs nun mit einem ListCellRenderer gemacht, aber such noch immer nach der Methode, weil es eigentlich unnötig viel Code ist dafür extra nen eigenen ListCellRenderer zu machen..