这是我写的代码,但宽度不是为VBox项目设置的。我得到所有面板相同的尺寸。我需要一些帮助。 提前谢谢!
private void initComponents() {
this.setPadding(new Insets(0,70,0,70));
this.setSpacing(10);
red1 = new StackPane();
red1.setStyle("-fx-background-color:red;");
red1.setPrefHeight(60);
red1.setPrefWidth(260);
this.setVgrow(red1, Priority.ALWAYS);
this.getChildren().add(red1);
red2 = new StackPane();
red2.setStyle("-fx-background-color:red;");
red2.setPrefHeight(60);
red2.setPrefWidth(240);
this.setVgrow(red2, Priority.ALWAYS);
this.getChildren().add(red2);
}
private StackPane red1;
private StackPane red2;
}
答案 0 :(得分:1)
如果可能的话,所有窗格都会尝试布局并调整其子级的大小,并且所有窗格都会由父母通过尊重其内容来调整大小。阅读javadoc以获取更多信息。
所有窗格(VBox
,StackPane
,FlowPane
,Pane
等)都打包到javafx.scene.layout
包中,这意味着这些窗格用于布局其他节点/控件。
您实际尝试获取的形状将打包到javafx.scene.shape
包中。例如,使用它们作为:
red1.getChildren().add(new Rectangle(200, 100, Color.YELLOW));
...
red2.getChildren().add(new Circle(30, Color.BLUE));