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

Javafx 2 JavaFX:以全屏模式在浏览器中显示对话框,javafx-2,modal-dialog,fullscreen,Javafx 2,Modal Dialog,Fullscreen,当我的舞台处于全屏模式时,我试图在我的应用程序上显示一个对话框时,我遇到了一些奇怪的行为 当我作为独立应用程序启动应用程序时,一切正常。当我从浏览器中运行时,模式对话框将舞台从全屏中移除。虽然,它并没有真正“走出”全屏模式。。。代码仍然认为它是全屏的(fullscreenProperty==true),但它没有显示为全屏。关闭对话框后,如果按ESC键(这将使您脱离全屏模式),应用程序将崩溃 下面是一个示例代码: public class Test1 extends Application {

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

当我作为独立应用程序启动应用程序时,一切正常。当我从浏览器中运行时,模式对话框将舞台从全屏中移除。虽然,它并没有真正“走出”全屏模式。。。代码仍然认为它是全屏的(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);
    }
公共类Test1扩展了应用程序{
@凌驾
公共作废开始(最终阶段初级阶段){
按钮btn=新按钮();
btn.setText(“说‘你好,世界’”);
btn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
Stage dialogStage=新阶段(StageStyle.UTILITY);
dialogStage.InitModal(MODAL.APPLICATION_MODAL);
dialogStage.setScene(新场景(VBoxBuilder.create()。
子项(新文本(“Hi”)、新按钮(“Ok”)。
对齐(正中)。填充(新插图(5)).build();
dialogStage.initOwner(primaryStage);
dialogStage.show();
System.out.println(primaryStage.isFullScreen());
}
});
StackPane root=新的StackPane();
root.getChildren().add(btn);
Rectangler=Screen.getPrimary().getBounds();
场景=新场景(根,r.getWidth(),r.getHeight());
setTitle(“你好,世界!”);
初级阶段。场景(场景);
primaryStage.setFullScreen(真);
primaryStage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
你知道如何解决这个问题吗?或者你知道我可以用什么来代替舞台对话吗


提前感谢。

在OSX 10.8上以全屏模式使用JavaFX 2.2和8 early access b94时,我也遇到过此类问题,但没有找到解决方案或解决办法(除了避免对话框,这其实根本不是一个解决办法)。我建议您对每个问题进行分类,并针对这些问题进行处理。您是否尝试过使用弹出窗口?