1

这是我编写的代码,但没有为 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;
}
4

1 回答 1

1

如果可能,所有窗格都会尝试对其子级进行布局和调整大小,并且所有窗格都由其父级通过尊重其内容来调整大小。阅读 javadoc 以获取更多信息。

所有窗格(VBoxStackPaneFlowPanePane)都打包到javafx.​scene.​layout包中,这意味着这些窗格用于布置其他节点/控件。

您实际尝试获得的形状被打包到javafx.​scene.​shapepackage.json 中。例如,将它们用作:

red1.getChildren().add(new Rectangle(200, 100, Color.YELLOW));
...
red2.getChildren().add(new Circle(30, Color.BLUE));
于 2014-02-17T05:40:07.267 回答