Swing ToggleAction von JXCollapsiblePane

kceenav

Mitglied
Guten Tag!

Ich experimentiere zurzeit mit der JXCollapsiblePane aus dem swingx-Paket. (Auf die Schnelle habe ich keinen vernünftigen Link zu DIESEM Element gefunden ...) Wie die meisten bereits wissen, handelt es sich dabei um ein Panel, das seinen Inhalt zeigen oder verstecken kann, und das "stilvoll" mittels einer Animation bei der jeweiligen Änderung.

Laut Doku und Code-Beispielen verfügt das Panel von Hause aus über eine Action, die das Ein- und Ausfahren des Inhalts steuert.

Und nun die Frage: Es genügt doch, diese Action einem Button zuzuweisen, damit bei Klick darauf die zugehörige Aktion ausgeführt wird? Oder muss man ZUSÄTZLICH noch irgendwas unternehmen, damit der Button "hört"?

Eigentlich ist meine Frage schon beantwortet, da der Button beim Anklicken sein Icon ändert, entsprechend der fortan möglichen Aktion von einem Pfeil nach unten zu einem Pfeil nach oben -- oder umgekehrt. Die Icons habe ich zugewiesen, die für den Umbau nötigen Befehle enthält offenbar die actionPerformed-Methode der besagten Action.

Bloß das Expandieren klappt nicht ... Warum nicht?
 

eRaaaa

Top Contributor
Hi,

wie genau sieht denn dein Code aus? Hast du den Beispielcode aus der Doku ausprobiert?
Welchen LayoutManager verwendest du für den Container wo das CollapsiblePane drin steckt?
Note: JXCollapsiblePane requires its parent container to have a LayoutManager using getPreferredSize() when calculating its layout (example VerticalLayout, BorderLayout).

Ansonsten kannst du auch mal die Methode setCollapsed ausprobieren, in die Richtung von:
Java:
cp.setCollapsed(cp.isCollapsed() ? false : true);

Aber an sich sollte das schon so funktionieren ???:L (vermute dass es am Layout liegt bei dir)
 

kceenav

Mitglied
Hallo!

Bisher funktionierte lediglich das Ausfahren der CollapsiblePane. Und dabei fehlte die Animation ... Das Einfahren schien nicht möglich zu sein.
Wie ich jetzt festgestellt habe, konnte das Einfahren aber gar nicht funktionieren, denn ich verwendete in dem Zusammenhang eine "falsche" Bedingung, die praktisch (fast) nie eintrat.

Mit sinnvoller Bedingung klappt nun Beides.

Der Hinweis auf den Layout-Manager des aufnehmenden Containers war auch hilfreich. Denn mit einem "VerticalLayout" laufen jetzt auch beide Vorgänge mit der zugehörigen Animation ab.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G SwingX JXCollapsiblePane Problem AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben