Логотип в конце панели инструментов FlowPane при запуске - PullRequest
0 голосов
/ 27 января 2019

У меня есть логотип, который хорошо виден в конце моей панели инструментов, полученной из FlowPane, после изменения размера, как я это делаю:

widthProperty().addListener((observable, oldWidth, newWidth) -> {
      positionLogo();
    }
);

Однако я не вижу логотипа изначально, потому что свойство width не подходит.Я попробовал следующее, но это не работает:

m_primaryStage.setOnShown(e -> {
    m_primaryStage.getScene().getRoot().layout();
    m_toolbarSet.positionLogo();
});

И метод установки панели инструментов это:

public void positionLogo() {
    double spacerMargin = widthProperty().doubleValue() - getChildrenUnmodifiable().stream().mapToDouble( node -> node.getLayoutBounds().getWidth() ).sum();
    clearConstraints( m_logo );
    setMargin(m_logo, new Insets( 2, 0, 0, spacerMargin));
}

1 Ответ

0 голосов
/ 27 января 2019

Идея работает хорошо, я просто слишком поздно установил обработчик событияShown - после того, как этап уже был показан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...