В Accordion можно установить выбранную панель с помощью accordion.setExpandedPane
, а также получить всех детей с помощью accordion.getPanes()
.
Однако я изо всех сил пытаюсь найти, как реализовать функциональность «выбрать следующую панель» без явного расширения класса TitledPane для панелей и поддержания индекса вручную с помощью accordion.expandedPaneProperty()
и некоторой пользовательской реализации.
Предлагаемое решение - добавить прослушиваемое expandedPaneProperty()
:
accordion.expandedPaneProperty().addListener((observable, oldValue, newValue) -> {
if(null != newValue){
idx = 0;
for(TitledPane whytho: this.getPanes()){
if(!whytho.equals(newValue))idx++;
else break;
}
selectedIndex = idx;
}
});
Есть ли более простой способ для этого?