JavaFX:在全屏模式下在浏览器中显示对话框

时间:2013-06-26 16:46:32

标签: javafx-2 modal-dialog fullscreen

当我的舞台处于全屏模式时,尝试在我的应用程序上显示一个对话框时,我遇到了一些奇怪的行为。

当我将应用程序作为独立应用程序启动时,一切正常。当我从浏览器运行时,模态对话框使舞台脱离全屏。虽然,它并没有真正“超出”全屏模式......代码仍然认为它是全屏(fullscreenProperty == true),但它并不显示为全屏模式。关闭对话框后,如果按 ESC (这将使您退出全屏模式),应用程序将崩溃。

以下是示例代码:

public class Test1 extends Application {

    @Override
    public void start(final Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                Stage dialogStage = new Stage(StageStyle.UTILITY);
                dialogStage.initModality(Modality.APPLICATION_MODAL);
                dialogStage.setScene(new Scene(VBoxBuilder.create().
                    children(new Text("Hi"), new Button("Ok.")).
                    alignment(Pos.CENTER).padding(new Insets(5)).build()));
                dialogStage.initOwner(primaryStage);
                dialogStage.show();
                System.out.println(primaryStage.isFullScreen());
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Rectangle2D r = Screen.getPrimary().getBounds();
        Scene scene = new Scene(root, r.getWidth(), r.getHeight());

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.setFullScreen(true);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

知道如何解决这个问题吗?或者我可以使用什么而不是舞台对话框?

提前致谢。

0 个答案:

没有答案