如何锁定JavaFX全屏模式?

Sam*_*aus 2 java javafx fullscreen

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

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

小智 10

primaryStage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);


Ell*_*ltz 8

我错过了什么?我认为它的奶酪......就像这样

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);
        }
    });
Run Code Online (Sandbox Code Playgroud)

全屏无人脾气,直到用户按下开始按钮来模糊UI, 你可以防止这样 - 但我建议只有当你即将关闭你的电脑时尝试以下代码

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();
Run Code Online (Sandbox Code Playgroud)

primaryStage 是你的 Stage

希望它是你想要的