Eine ArrayList mit komplexen Objekten soll in einer JList dargestellt werden.
Ein selbst erstellter ListRenderer rendert die Objekte.
Da Objekte entfernt oder auch zugefügt werden können, habe ich dem Listenmodell der JList
die ArrayList unmittelbar zur Verfügung gestellt.
Hierzu habe ich ein eigenes Listmodell erstellt, in dem eine ArrayList die
Referenzen auf die Objekte hält, (das originale DefaultListModel in Standard Edition 8
benutzt noch einen Vector).
Die Verwendung einer einzigen ArrayList vereinfacht die Verarbeitung
von Zugängen und Löschungen. Diese Verarbeitung funktioniert auch gut.
Jetzt sollen jedoch, gesteuert durch den Benutzer, Objekte mit bestimmten
Eigenschaften nicht mitgerendert werden. Und da fangen die Probleme an:
Wird für diese Objekte in der Methode "public E getElementAt(int index)" im ListModel
"null" zurückgemeldet und im Renderer entspr. ignoriert,
werden sie zwar nicht gerendert, jedoch erscheinen in der Liste unschöne leere
Zeilen.
Gibt es eine Lösung für dieses Problem, oder muss ich doch mit mehreren
unterschiedlichen ArrayLists bzw. Vectoren arbeiten?
Ein selbst erstellter ListRenderer rendert die Objekte.
Da Objekte entfernt oder auch zugefügt werden können, habe ich dem Listenmodell der JList
die ArrayList unmittelbar zur Verfügung gestellt.
Hierzu habe ich ein eigenes Listmodell erstellt, in dem eine ArrayList die
Referenzen auf die Objekte hält, (das originale DefaultListModel in Standard Edition 8
benutzt noch einen Vector).
Die Verwendung einer einzigen ArrayList vereinfacht die Verarbeitung
von Zugängen und Löschungen. Diese Verarbeitung funktioniert auch gut.
Jetzt sollen jedoch, gesteuert durch den Benutzer, Objekte mit bestimmten
Eigenschaften nicht mitgerendert werden. Und da fangen die Probleme an:
Wird für diese Objekte in der Methode "public E getElementAt(int index)" im ListModel
"null" zurückgemeldet und im Renderer entspr. ignoriert,
werden sie zwar nicht gerendert, jedoch erscheinen in der Liste unschöne leere
Zeilen.
Gibt es eine Lösung für dieses Problem, oder muss ich doch mit mehreren
unterschiedlichen ArrayLists bzw. Vectoren arbeiten?