JavaFX没有正确设置布局

时间:2016-01-09 22:31:46

标签: css javafx fxml scenebuilder

我已经在JavaFX上苦苦挣扎了两天,我有一个场景我应该在我的屏幕上显示,但我有一个问题,当我在SceneBuilder中运行下面的代码时,代码似乎很完美,一切似乎都到位,甚至使用Preview Window选项它可以工作但是当我运行我的代码时弹出一个问题,舞台似乎5+的宽度比场景更大,因此我得到的布局有一种右侧是白色区域,这是我的代码

当我运行代码时,第一张图片显示布局结果,Asphalt图层是我的场景,你可以在我的布局的最右端看到白色图层,然后在第二张图片中在Scene Builder中测试一切似乎都好,我的沥青层填满了一切。

When tested in Scene Builder all seems ok, my asphalt layer has filled up everything an Image of my Layout Results when I run the code, the Asphalt layer is my scene, you can see the white layer on the far right end of my layout and down part

<AnchorPane minHeight="600.0" minWidth="1000.0"
xmlns="http://javafx.com/javafx/8.0.40" 
xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainViewController">
<children>
  <StackPane minHeight="600.0" minWidth="1000.0">
     <children>
        <BorderPane minHeight="600.0" minWidth="1000.0" style="-fx-background-color: #ecf0f1;">

        </BorderPane>
     </children>
  </StackPane>

和我用于扩充fxml文件的java代码

    Stage primaryStage = new Stage();
    primaryStage.setTitle("");        
    FXMLLoader loader = new FXMLLoader(getClass().getResource("/application/mainWindow.fxml"));
    Region root = (Region) loader.load();
    Scene scene = new Scene(root);


    primaryStage.setTitle("");
    primaryStage.setScene(scene);
    primaryStage.setResizable(false);
    primaryStage.centerOnScreen();
    primaryStage.show();


    primaryStage.setScene(scene);

    primaryStage.toFront();

    // Set minimum size based on client area's minimum sizes
    // Set minimum size based on client area's minimum sizes

    Stage loginStage = (Stage) (this.scene.getWindow());
    primaryStage.setMinWidth(primaryStage.getWidth());
    primaryStage.setMinHeight(primaryStage.getHeight());
    primaryStage.show();
    loginStage.close();

3 个答案:

答案 0 :(得分:0)

我在这段代码中没有看到任何错误,但是设置舞台的最小尺寸可能会导致这个问题,无论如何它都是无用的,因为舞台会使用场景的大小。如果这不起作用,请尝试设置Anchorpane的最大大小或场景构造函数中的大小以及第一个解决方案。 (顺便说一句,我不会使用Region作为根容器,Parent或容器名称是更典型的解决方案)

编辑:控制器的代码在哪里?它有什么用吗?

答案 1 :(得分:0)

似乎.eslintrc是问题,我不知道为什么但是在删除它并将子AnchorPane设置为父级后,所有内容都已排序。

答案 2 :(得分:0)

这是Windows上不可调整大小的阶段的错误 - 见http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8089008