0

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

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。

实现这一目标的最佳方法是什么?

4

1 回答 1

1

并非所有Node类都支持调整大小。Group类就是其中之一。在您的root对象上调用 isResizable() 时,您会明白这一点。改为使用Regioneg的子类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);

你的例子现在应该可以工作了。

于 2011-07-31T15:09:17.877 回答