【问题标题】:JavaFX fullscreen stage resizingJavaFX 全屏舞台调整大小
【发布时间】:2018-05-12 15:19:07
【问题描述】:

我遇到了全屏阶段的问题。我有 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);

【问题讨论】:

    标签: java javafx


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 2017-07-19
      • 2016-12-13
      • 2016-01-10
      • 2013-05-12
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      相关资源
      最近更新 更多