JavaFX全屏舞台调整大小

时间:2018-05-12 15:19:07

标签: java javafx

全屏阶段出现问题。我有1个主要阶段,当应用程序启动时立即进入全屏,然后当用户调用特定事件时,我创建第二阶段也是全屏,但它显示图像并且其背景是透明的,因此主要阶段及其内容是仍然可见。

问题是,当我显示这个新舞台并将其设置为全屏模式时,它会使我的主舞台退出全屏模式并调整大小。

创建主要阶段:

    root  = new StackPane();
    scene = new Scene(root);
    stage = primaryStage;

    scene.setOnKeyReleased(event -> {
        if (event.getCode() == KeyCode.ESCAPE) {
            close();
        }
    });

    stage.setScene(scene);
    stage.setFullScreen(true);
    stage.setFullScreenExitHint(null);
    stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
    stage.setOnCloseRequest(closeRequest -> onClose(closeRequest));

创建新阶段:

    root  = new StackPane();
    scene = new Scene(root);
    stage = new Stage(StageStyle.TRANSPARENT);
    image = new ImageView(new Image(imagePath, 400, 580, true, true));

    root.setAlignment(Pos.CENTER);
    root.setStyle("-fx-background-color: rgba(0, 0, 0, 0.5)");
    root.getChildren().add(image);

    scene.setFill(Color.TRANSPARENT);
    scene.setOnMousePressed(event -> stage.close());

    stage.initOwner(Window.getInstance().getStage());
    stage.setScene(scene);
    stage.setFullScreen(true);
    stage.setFullScreenExitHint(null);
    stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);

1 个答案:

答案 0 :(得分:0)

我通过使用stage.setMaximized(true)解决了这个问题,而不是将其设置为全屏并且工作正常。我不知道这是不是很好的解决方案,但我只想在这里发布。