Здравствуйте, я занимаюсь изучением javafx, и мне надо написать чтобы при добавлении "нода" на "сцену" окно само увеличивалось на нужный размер.
(window.setHeight(window.getHeight() + myNode.getBoundsInLocal().getHeight());), но myNode.getBoundsInLocal().getHeight() выдает 0.0.
Весь код:
MyNode myNode = new RootFinderResult(findersNames);
vBox.getChildren().add(myNode);
window.setHeight(window.getHeight() + myNode.getBoundsInLocal().getHeight());
Что я делаю не так?
В AWT, вы можете добавить интерфейс ComponentListener в JPanel, а затем переопределить метод componentResized(), чтобы получить новые значения ширины и высоты. Попробуйте прописать слушатель ComponentAdapter к примеру таким образом:
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
System.out.println("Новая ширина: " + getWidth() + " Новая высота: " + getHeight());
}
});
В JavaFX скорее всего не получится это сделать, возможно вам подойдет второй вариант:
scene.widthProperty().addListener(new ChangeListener<Number>() {
@Override public void changed(ObservableValue<? extends Number>
observableValue, Number oldSceneWidth, Number newSceneWidth) {
System.out.println("Ширина: " + newSceneWidth);
}
});
scene.heightProperty().addListener(new ChangeListener<Number>() {
@Override public void changed(ObservableValue<? extends Number>
observableValue, Number oldSceneHeight, Number newSceneHeight) {
System.out.println("Высота: " + newSceneHeight);
}
});
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости