添加组件时,Javafx阶段不会调整大小

时间:2012-11-21 15:10:03

标签: java javafx stage

所以我有这个应用程序获取一些数据并显示图表!

当我启动程序时,不会创建图表数据和折线图,因此我的程序如下所示:

enter image description here

然后当我按下“Hent data”按钮时,我的线图被创建并添加到borderpane的中心,这使得gui看起来像这样: enter image description here

正如您所看到的,应用程序阶段的大小不适合所有组件。

但是,如果我通过创建随机图表(而不是更改大小)来启动程序,程序将如下所示:

enter image description here

在所有示例中,我的主要阶段代码如下所示:

public void start(Stage primaryStage) throws Exception {
    this.primaryStage = primaryStage;
    bp = new BorderPane();
    bp.setTop(createTopPane());
    Group root = new Group();
    root.getChildren().add(bp);
    bp.setCenter(createCenter());
    AnchorPane leftPane = new AnchorPane();

    leftPane.setPrefWidth(20);
    Separator vSeparator = new Separator(Orientation.VERTICAL);
    bp.setRight(leftPane);
    Scene scene = new Scene(root);
    scene.getStylesheets().addAll("test.css", "calendarstyle.css");
    primaryStage.setScene(scene);
    primaryStage.setMinHeight(500);
    primaryStage.setMinWidth(527);
    primaryStage.show();
}

即使图形尚未创建,我如何确保舞台保持适合图形的大小?

请注意我单击按钮时已经尝试更改primaryStage大小,但这并没有解决问题

1 个答案:

答案 0 :(得分:2)

使用AnchorPane.setLeftAnchor(javaFxNode, 0.0);AnchorPane.setRightAnchor(javaFxNode, 0.0);静态方法。两者中的值均为0,应将图表的两侧“粘贴”到其容器中。当然,您也可以使用setTopAnchorsetBottomAnchor来解决相同的问题。