我正在努力思考如何为我的JavaFX项目创建一个“安全窗口”。本质上,程序不会在正常的桌面上显示它的内容,而是进入一种安全模式,在这种模式下只显示程序,你不能最小化,例如查看Google。如果有人熟悉的话,这将模仿有多少学校的州级测试程序有效。只是寻找一些链接或信息来指引我正确的方向,因为我知道这是可能的,只是不确定要查找什么。谢谢!
发布于 2020-11-01 07:33:57
我会将Stage设置为全屏,总是在顶部,并设置为StageStyle.UNDECORATED。然后,我会为任何WindowEvent添加一个EventFilter并使用该事件。
public class App extends Application {
@Override
public void start(Stage stage) {
stage.initStyle(StageStyle.UNDECORATED);
stage.setAlwaysOnTop(true);
stage.setFullScreen(true);
stage.addEventFilter(WindowEvent.ANY, Event::consume);
stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
StackPane root = new StackPane();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}注意:您仍然有键盘问题,如转义或Alt。
发布于 2020-11-01 06:36:09
只需在初始化器中编写3行代码,就可以实现这一点
Rectangle2D visualBounds= Screen.getPrimary().getVisualBounds(); //Get the screen size
Scene scene = new Scene(root, visualBounds.getWidth(), visualBounds.getHeight());//Make sure the program fills length and width of the screen
primaryStage.setScene(scene);
primaryStage.setAlwaysOnTop(true);//Keeps it always on top
primaryStage.initStyle(StageStyle.UNDECORATED);//Remove the handy close/minimize buttons
primaryStage.show();这会让测试变得非常烦人,一旦你点击run,它就会占据你的屏幕。因此,请确保有一些方法可以从程序中安全地退出程序。(如果你不介意突然终止程序,你可以随时使用alt+F4)
编辑:我刚刚在Windows10环境下测试了它。就像一种护身符。即使是任务管理器也无法做到这一点
https://stackoverflow.com/questions/64626929
复制相似问题