【发布时间】:2016-08-08 10:06:22
【问题描述】:
我正在学习 javafx,我很少尝试使用 vbox 布局管理器。代码似乎没问题,但我想检查一下我是否真的理解它是如何工作的。
代码如下:
public class TestShape2 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Group root = new Group();
Label topLabel = new Label("Top...");
Label topLabel2 = new Label("Top 2...");
Rectangle rect = new Rectangle();
rect.setFill(Color.AQUA);
Label bottomLabel = new Label("Bottom...");
VBox vBox = new VBox();
rect.widthProperty().bind(vBox.widthProperty());
rect.heightProperty().bind(vBox.heightProperty());
vBox.getChildren().addAll(topLabel, topLabel2, rect, bottomLabel);
/*
* Code 1
*/
root.getChildren().add(vBox);
Scene scene = new Scene(root, 300, 300, Color.BLANCHEDALMOND);
/*
* Code 2
*/
// Scene scene = new Scene (vBox, 300, 300, Color.BLANCHEDALMOND);
primaryStage.setScene(scene);
primaryStage.show();
}
}
在“代码 1”中:vBox 的宽度和高度是根 ass 中包含的元素的宽度和高度吗?根组是 vbox 的父级吗?所以,vBox 没有填满整个空间? 在“代码 2”中:因为我不使用某些根组,所以 vbox 尺寸将是场景的尺寸,因为场景是 vbox 的父级? 我的理解正确吗?
如果这是正确的,我的问题是:具有“顶部标签”、“底部标签”和填充所有可用空间的矩形的代码是什么?在代码2中,我从来没有看到底部标签”,因为矩形高度似乎是场景的高度,所以我想底部标签不在场景中。但是如何解决呢?
感谢大家帮助理解javafx
【问题讨论】:
标签: layout javafx layout-manager shape