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

如何锁定JavaFX全屏模式?

解念
2023-03-14

我目前正在开发一个志愿者登录应用程序,需要防止任何试图篡改计算机的行为。首先,我很容易地将应用程序设置为全屏。然后我尝试将窗口的exit键组合设置为null,但在这种情况下JavaFX自动默认为escape键。我将有一个管理部分,该程序可以退出使用密码。是否有任何方法可以有效地拦截退出JavaFX应用程序全屏状态的任何可能方法,或者更好的方法是暂时挂起/锁定其他操作系统功能?

编辑——使用组合键。不匹配,我阻止用户全屏退出。但是,操作系统仍然能够使用标准的组合键退出,或者,在OSX的情况下,只需将鼠标移动到屏幕顶部并使用程序菜单退出即可。

共有2个答案

宰父志新
2023-03-14

初级阶段。setFullScreenExitKeyCombination(KeyCombination.NO_匹配);

方鸿振
2023-03-14

我错过了什么?我想是奶酪。。这样地

primaryStage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {

        @Override
        public void changed(ObservableValue<? extends Boolean> observable,
                Boolean oldValue, Boolean newValue) {
            if(newValue != null && !newValue.booleanValue())
                primaryStage.setFullScreen(true);
        }
    });

在用户按下“开始”按钮以模糊用户界面之前,全屏用户都不会发脾气。不过,您可以防止这种情况发生,但我建议您只有在即将关闭pc时才尝试以下代码

new Thread(new Runnable() {
        @Override
        public void run() {
            while(true){
               //in my initial try i didn't add sleep, 
               //and i ended up,turning off the pc,lost this post for a while
                try {
                    Thread.sleep(100); //buy little millieseconds
                } catch (InterruptedException e) {}

                Platform.runLater(()->{
                    primaryStage.toFront();
                    //bring your UI on top of everyone
                });
            }

        }
    }).start();

primaryStage是您的Stage

希望这就是你想要的

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

  • 我正在编写一个应用程序来管理或自定义Android设备的解锁屏幕。它的工作原理如下: 用户使用电源按钮锁定屏幕。 用户尝试解锁屏幕,从而再次按下电源按钮 我的活动弹出--屏幕仍然锁定 用户回答问题,如果答案正确,屏幕解锁 我已经为第三步创建了一个活动,并将以下代码添加到其方法中: 这工作正常,完全符合我的期望。我的问题是第四步。我已经搜索并找到了许多解决方案,但没有一个适合我。 如何以编程方式锁定

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

  • 我有一个外部显示器与我的mac连接,我想制作一个JavaFX应用程序,它在我的主显示器和外部显示器上都是全屏的。 我试过下面的代码,但它总是一次只给我一个全屏。 当第一个setFullScreen(true)被调用时,第一个阶段在我的主监视器中出现全屏。 当调用第二个setFullScreen(true)时,第一级失去其全屏,而第二级在外部监视器中出现全屏。 如何在两个监视器中同时将两个阶段设置为

  • 编辑模型时使用整个屏幕。正常显示在 Navicat Data Modeler 应用程序的菜单和标题栏在这个模式时将会隐藏。移动你的滑鼠光标到屏幕的顶部,菜单和标题栏将会自动显示。 从菜单栏选择“查看”->“进入全屏幕”或简单地按 CTRL-COMMAND-F 来开始全屏模式。 当取消了全屏模式,Navicat Data Modeler 窗口将回复至之前的狀态。

  • 编辑模型时使用整个屏幕。正常显示在 Navicat Data Modeler 应用程序的标题栏在这个模式时将会隐藏。 从菜单栏选择“查看”->“全屏”或简单地按 F11 来开始全屏模式。 当取消了全屏模式,Navicat Data Modeler 窗口将回复至之前的状态。