Обвязка BorderPane и высота и ширина рамки - PullRequest
0 голосов
/ 29 июля 2011

Я использую JavaFX 2 в Netbeans.Как я могу получить ширину и высоту элемента для настройки при изменении размера фрейма?Вот мой макет:

Stage stage = new Stage();
stage.setTitle("Hello World");
final Group root = new Group();
Scene scene = new Scene(root);

BorderPane border = new BorderPane();
border.setPrefWidth(stage.getWidth());
border.setPrefHeight(stage.getHeight());

HBox outerHBox = new HBox();
border.setCenter(outerHBox);
root.getChildren().add(border);
stage.setScene(scene);

После еще одного исследования я обнаружил, где это было сделано до http://java.dzone.com/articles/setting-stage-javafx-sdk, но это в старом FX (очень отличается от JavaFX2).У меня проблемы с переводом.Похоже, я должен использовать связывание?Я никогда раньше не использовал связывание и едва использовал FX.

Какой лучший способ добиться этого?

1 Ответ

1 голос
/ 31 июля 2011

Не все Node классы позволяют изменять размер. Класс Group является одним из них. Вы поймете это при вызове isResizable () для вашего root объекта. Вместо этого используйте подкласс Region, например. BorderPane как ваш root.

Stage stage = new Stage();
stage.setTitle("Hello World");

final BorderPane border = new BorderPane();
Scene scene = new Scene(border);

Button button = new Button("test");

HBox outerHBox = new HBox();
outerHBox.getChildren().add(button);
outerHBox.setAlignment(Pos.CENTER);

border.setCenter(outerHBox);

stage.setScene(scene);

Ваш пример должен сработать.

...