JavaFX с несколькими озаглавленными панелями в vbox с построителем сцен (подобно аккордеону)

Я новичок в JavaFX и пытаюсь создать форму, похожую на аккордеон, но с возможностью одновременного расширения нескольких озаглавленных панелей. Как я понял, это невозможно с аккордеоном, поэтому я пробую предложенный метод с именованными панелями внутри vbox.

Я разрабатываю форму, используя конструктор сцен 1.1. Проблема в том, что озаглавленные панели не связаны, как в аккордеоне; если я сверну одну, остальные не прокручиваются вверх, а на месте свернутой панели остается пустое место.

Приветствуются любые идеи, как исправить это в конструкторе сцен.


person mami    schedule 08.01.2016    source источник
comment
Это отлично работает для меня. Можете ли вы опубликовать свой код? (Кроме того, SceneBuilder 1.1 намного устарел. Вам следует перейти на новая версия.)   -  person James_D    schedule 08.01.2016
comment
Спасибо, я попробую с более новым конструктором сцен.   -  person mami    schedule 09.01.2016


Ответы (1)


Для проблемы с прокруткой/пустым пространством вы можете попробовать следующее:

titledPane.setMinHeight(200);
titledPane.expandedProperty().addListener((observable, wasExpanded, isExpanded) -> 
    titledPane.setMinHeight(isExpanded ? 200 : Region.USE_PREF_SIZE));

Но я предлагаю вам также установить

titledPane.setAnimated(false);

В противном случае результат не будет действительно гладким.

В моем случае растягивание TitledPane для заполнения VBox:

Только что открыл TitledPane

Одна свернутая панель заголовка

Если все панели свернуты, они перемещаются наверх.

person Steffen Thurner    schedule 09.01.2016