Panelcache erzeugen

MS-Tech

Erfahrenes Mitglied
Hallo Zusammen,

ich hab mal ne Idee und hätte gern euer Feedback und ein paar Tipps.

Ich erzeuge in einer Anwendung einen JTree, der u.U. hunderte von Elemente beinhalten kann. Für jedes Element wird ein JPanel erzeugt, d.h. wenn ich meine Anwendung starte, dann habe ich hunderte von Elementen im Speicher. Das ist etwas, was ich eigentlich nicht will.

Ich hätte mir gedacht, dass ich so eine Art Panelcache erzeugen könnte, d.h. ich baue mir eine HashMap<String, Component> auf. Anstatt nun bereits am Anfang alle Baumelemente mit einem Panel zu verknüpfen, mache ich das erst beim Klick auf einen Ast. Dabei hole ich mir das Panel aus dem Panelcache. Sollte ich vorhin bereits auf einen Ast geklickt haben, so muss ich das Panel von diesem Ast wieder entfernen und in den neu geklickten Ast hängen.

Kann das überhaupt funktionieren?

Ich hätte es eigentlich bereits schon ein bisschen getestet, nur werden die Panels nicht mehr korrekt dargestellt. Da hilft auch leider kein "repaint()" etc.

Vielleicht hat jemand ne andere Idee?

Viele Grüße
MS-Tech
 
Hi,

ich kann dir leider keine Hilfe zu den Darstellungsproblem geben.

Allerdings würde ich dir empfehlen - je nachdem was sichtbar sein soll - "on the fly" zu erzeugen, d.h. wenn der Nutzer drauf klickt.
Wenn du die Panels cachen möchtest, könntest du diese speichern, wie du gesagt hast. Hier würde ich aber noch die maximale Anzahl festlegen, d.h. wenn 10=max ist und ein elftes angeklickt wird, dann wird das Erstgeladene wieder aus dem Cache entfernt (FIFO).
 
Zurück