当窗格之一在JavaFX中不可见时,如何调整窗口的大小(缩小)?

时间:2018-06-23 11:49:04

标签: javafx

我在课堂上得到了将Application扩展到设置阶段的代码:

public void start(Stage stage) throws Exception {
    GridPane grid = new GridPane();
    grid.add(this.pane1, 0, 0);
    grid.add(this.pane2, 0, 1);
    grid.add(this.pane3, 1, 0, 1, 2);
    Pane root = new AnchorPane(grid);
    AnchorPane.setLeftAnchor(grid, 0.0);
    AnchorPane.setTopAnchor(grid, 0.0);
    Scene scene = new Scene(root);
    scene.setOnKeyReleased(this::onKeyReleased);
    stage.setScene(scene);
    stage.sizeToScene();
    stage.show();
}

有一个简单的密钥处理程序:

private void onKeyReleased(KeyEvent event) {
    switch (event.getCode()) {
    case F10:
        this.pane3.setVisible(!this.pane3.isVisible());
        this.stage.getScene().getWindow().sizeToScene();
//      this.stage.sizeToScene();
        this.pane3.requestLayout();
        break;
    }
}

最初pane3不可见,并且可以从对grid的{​​{1}}方法的调用中读取,它跨越两行,位于前两个窗格的右侧。当我按F10键时,我想切换它的可见性,因此我的舞台应该首先扩展(并且这确实有效),但是当我隐藏那个add窗格时,整个窗口应该折叠(只适合第一个两个可见窗格) ),但是它不起作用,并且窗口的大小与打开pane3的大小相同。我该如何解决?

编辑:如前所述,这实际上与另一个问题相似。密钥为pane3(或绑定这些属性)。我刚刚确认,有了这个小的更改,窗口就可以正常折叠。感谢您发现类似的问题!

0 个答案:

没有答案