我正在制作一个 JavaFX 信息亭应用程序,它需要完全控制屏幕并禁止关闭、最小化和某些按键。我想知道有没有办法让 JavaFX 应用程序以全屏独占模式运行,如果没有,是否有任何替代方案可以实现相同的目标。我试过使用:
stage.setFullScreen(true);
这确实成功地使应用程序全屏,但是用户仍然可以退出应用程序或退出全屏。
我正在制作一个 JavaFX 信息亭应用程序,它需要完全控制屏幕并禁止关闭、最小化和某些按键。我想知道有没有办法让 JavaFX 应用程序以全屏独占模式运行,如果没有,是否有任何替代方案可以实现相同的目标。我试过使用:
stage.setFullScreen(true);
这确实成功地使应用程序全屏,但是用户仍然可以退出应用程序或退出全屏。
处理关闭事件。
以下代码可能会有所帮助!
// 设置平台参数 Platform.setImplicitExit(false);
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
// deque it
event.consume();
}
});
我最近遇到了同样的问题,希望你能解决(我不会等 4 年才能得到答案)。
如果不:
在调用之前,stage.show()
您需要调用并作为唯一参数setFullScreenExitKeyCombination
传递。KeyCombination.NO_MATCH
所以例如...
stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
stage.show()
这将防止使用 ESC 关闭和取消全屏(但仍然为您提供后门方式来删除全屏 - Shift+PAUSE 或 F13):
scene.setOnKeyPressed((event) ->
{
if (event.getCode() == KeyCode.PAUSE && event.isShiftDown())
stage.setFullScreen(!stage.isFullScreen());
});
stage.setOnCloseRequest(Event::consume);
stage.setFullScreenExitKeyCombination(new KeyCodeCombination(KeyCode.F13));
为了关闭您的应用程序,您必须添加Platform.exit()
一些命令。