JavaFX someNode.getBoundsInLocal().getHeight() выдает 0.0

292
02 января 2018, 15:10

Здравствуйте, я занимаюсь изучением 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());

Что я делаю не так?

Answer 1

В 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);
}
});
READ ALSO
Как закрыть jFrame?

Как закрыть jFrame?

Привет, наверное очень глупый вопрос но сталкиваюсь с таким впервые, вот я открываю новый jFrame

366
Не работает onMousePressed у ScrollPane

Не работает onMousePressed у ScrollPane

Здравствуйте! Вот код

213
не отображается текст в JComboBox

не отображается текст в JComboBox

Есть переопределенный JComboBox, в котором вставлены свои иконкиКод скопирован и до конца не понятен

306
LibGdx: проблема с прозрачностью при создании скриншота

LibGdx: проблема с прозрачностью при создании скриншота

Через стандартный способ - https://githubcom/libgdx/libgdx/wiki/Taking-a-Screenshot реализовал создание скриншотов, но в полупрозрачных областях спрайтов полупрозрачными...

249