我在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。
最好的方法是什么?
答案 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);
你的例子现在应该有效。