当前位置: 首页 > 知识库问答 >
问题:

如何在JavaFX中全屏显示时更改场景并避免“按ESC退出全屏”消息

丁翰海
2023-03-14

如何更改全屏窗口的场景并避免显示“按ESC退出全屏”消息?

我正在构建全屏桌面应用程序(触摸屏亭),所以我可以在开始时显示此消息,但现在总是当用户改变场景。

有两个问题:

>

  • 在全屏模式下更改场景时,窗口大小将减小。解决方案是切换全屏,但会显示该消息。(在全屏JavaFX中更改场景)

    “按ESC…”由于安全原因,无法禁用消息(https://forums.oracle.com/forums/thread.jspa?threadID=2287258)

    谢谢

  • 共有3个答案

    巫马昆琦
    2023-03-14
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.scene.input.KeyCombination;
    
    public class GameApplication extends Application{
        @Override
        public void start(Stage stage){
            StackPane stackPane=new StackPane();
            Scene scene=new Scene(stackPane,500,500);
            stage.setScene(scene);
            stage.setTitle("Title");
            //Fullscreen
            stage.setFullScreen(true);
            //We don't want to exit the fullscreen when keys are pressed
            stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
            //We are adding a change listener to lock the application in full
            //screen mode only
            stage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
    
                @Override
                public void changed(ObservableValue<? extends Boolean> observable,
                        Boolean oldValue, Boolean newValue) {
                    if(newValue != null && !newValue.booleanValue())
                        stage.setFullScreen(true);
                }
            });
            stage.show();
        }
        //main method
        public static void main(String ...$){
            launch($);
        }
    }
    
    姜煌
    2023-03-14

    二号。JavaFX8中将有一个新特性来改变这种警告。目前的建议是,将有一个命令行选项。您可以在openjfx邮件列表上看到讨论(http://markmail.org/search/?q=javafx。阶段fullScreenWarning=false#查询:javafx。阶段fullScreenWarning=错误页面:1 mid:ptqpgut2vvvhgkip状态:结果)

    东方嘉佑
    2023-03-14

    JavaFX8通过添加以下两种方法解决了此问题:

    • 舞台。SetFullScreenExit(字符串
    • 舞台。setFullScreenExitKeyCombination(按键组合)

    如果将退出组合键设置为KeyCombination。不匹配弹出消息将被完全禁用。

     类似资料:
    • 我是JavaFX的新手。我有我的主要场景和次要场景;当我从第一个场景切换到第二个场景时,窗口的条形图变得可见。我该怎么解决呢?

    • 我想在按下ESC退出全屏模式后,使功能返回到全屏模式。 有什么方法可以返回到全屏吗? 例如,为了执行全屏模式,我使用了如下方法 在后台,当我按ESC键时,后台退出到全屏。在此处输入图像描述 在此处输入图像描述 然后在这个阶段,我想希望回到全面屏模式。

    • 我对JavaFX有问题。我创建了两个场景和开关按钮。当我点击那个按钮时,我正在改变场景。但之前我将fullscreen设置为true,按下按钮后,windows任务栏会显示片刻。有没有什么方法可以改变场景而不让这个任务栏可见呢?下面是代码: -----main class---- ----DesktopApplication类---- ----MyLayout类----

    • 问题内容: 我正在使用Three.js创建3D多人游戏,玩家可以在其中加入各种现有游戏。单击“播放”后,渲染器将附加到页面和全屏。这很好用,但是问题是,当我退出全屏显示时,它仍然保持附加状态。我想删除它,但是我不知道什么时候! 因此,基本上,我正在寻找一个事件,该事件说“此元素退出全屏显示”。 这是将渲染器附加到页面的方法: 如果我如何全屏显示: 此外,是否有办法阻止有人将鼠标指向页面顶部时出现该

    • 我的Android应用程序需要显示一个全屏位图作为背景,然后在上面使用OpenGL ES显示一些动态的3D图形(1.1或2.0--尚未决定)。背景图像是同一个应用程序中WebView组件的快照,因此它的尺寸已经完全适合屏幕。 我是OpenGL新手,但我知道显示位图的常规方法包括将其缩放成一个POT纹理(glTexImage2D)、配置矩阵、为矩形创建一些顶点并使用GLDraWarrays来显示。似