Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
javafx:accordion-all-open 2015/04/14 14:53 | javafx:accordion-all-open 2020/01/22 20:59 aktuell | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
[[javafx:javafx|JavaFX]]\\ | [[javafx:javafx|JavaFX]]\\ | ||
====== Accordion, alle offen ====== | ====== Accordion, alle offen ====== | ||
- | Das JavaFX Accordion kann immer nur ein Element zur Zeit öffnen. Mit wenig Aufwand lässt sich ein eignes Accordion entwickeln, bei welchem mehrere/alle Elemente offen sein können:\\ | + | Das JavaFX Accordion kann immer nur ein Element zur Zeit öffnen. Mit wenig Aufwand lässt sich ein eigenes Accordion entwickeln, bei welchem mehrere/alle Elemente offen sein können:\\ |
{{:javafx:accordion-all-open.png|}} | {{:javafx:accordion-all-open.png|}} | ||
\\ | \\ | ||
Zeile 24: | Zeile 24: | ||
</html> | </html> | ||
\\ | \\ | ||
- | Eine einfache Variante, die auf das wesentliche beschränkt ist:\\ | + | Eine einfache Variante, die auf das Wesentliche beschränkt ist:\\ |
<code java> | <code java> | ||
package com.sowas.javawiki.javafx; | package com.sowas.javawiki.javafx; | ||
Zeile 57: | Zeile 57: | ||
} | } | ||
</code> | </code> | ||
+ | \\ | ||
\\ | \\ | ||
Eine Accordion-Klasse, die (ein bisschen) kompatibel zur JavaFX-Klasse Accordion ist:\\ | Eine Accordion-Klasse, die (ein bisschen) kompatibel zur JavaFX-Klasse Accordion ist:\\ | ||
Zeile 76: | Zeile 77: | ||
public NavigatorAccordion() { | public NavigatorAccordion() { | ||
+ | // Falls keine horizontale Scrollleiste gewünscht ist, muss die Breite der VBox | ||
+ | // and die ScrollPane angepasst werden: | ||
+ | widthProperty().addListener(new ChangeListener<Number>() { | ||
+ | @Override | ||
+ | public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { | ||
+ | vBox.setMinWidth(newValue.doubleValue()); | ||
+ | vBox.setPrefWidth(newValue.doubleValue()); | ||
+ | vBox.setMaxWidth(newValue.doubleValue()); | ||
+ | } | ||
+ | }); | ||
+ | setHbarPolicy(ScrollBarPolicy.NEVER); | ||
+ | |||
+ | // Änderungen an der Liste werden hier behandelt: | ||
panes.addListener((ListChangeListener<TitledPane>) c -> { | panes.addListener((ListChangeListener<TitledPane>) c -> { | ||
while (c.next()) { | while (c.next()) { | ||
Zeile 116: | Zeile 130: | ||
Stichworte: | Stichworte: | ||
<code> | <code> | ||
- | JavaFX Accordion, alle offen, Beispiel | + | JavaFX Accordion, alle offen, mehere gleichzeitig offen, Beispiel |
</code> | </code> | ||