我目前正在制作志愿登录应用程序,并且需要防止任何篡改计算机的企图。首先,我将应用程序设置为全屏,足够容易。然后我尝试将窗口的退出键组合设置为null,但在这种情况下,JavaFX会自动默认为转义键。我将有一个管理部分,可以使用密码退出程序。有没有办法有效地拦截退出JavaFX应用程序全屏状态的任何可能方法,或者 - 更好的是 - 暂时挂起/锁定其他操作系统功能?
编辑 - 使用KeyCombination.NO_MATCH,我阻止用户退出全屏。但是,操作系统仍然完全能够使用标准键组合退出,或者在OS X的情况下,只需将鼠标移动到屏幕顶部并使用程序菜单退出。
答案 0 :(得分:9)
primaryStage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
答案 1 :(得分: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);
}
});
全屏无人脾气,直到用户按下开始按钮来隐藏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();
primaryStage
是您的Stage
希望你想要的东西