绑定BorderPane和帧高度和宽度

时间:2011-07-28 21:22:55

标签: layout binding relativelayout javafx-2

我在Netbeans中使用JavaFX 2。在调整帧大小时,如何调整元素的宽度和高度?这是我的布局:

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中(与JavaFX 2非常不同)。我在翻译时遇到了麻烦。看起来我应该使用绑定?我之前从未使用过绑定,而且我几乎没有使用FX。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

并非所有Node类都能启用大小调整。 Group类就是其中之一。在root对象上调用isResizable()时,您将理解这一点。请改为使用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);

你的例子现在应该有效。