如何在Java AWT应用程序中禁用系统键盘处理?
问题描述:
如何禁用此类密钥及其组合,例如,Alt; Alt + F4和其他在我的Java AWT应用程序?如何在Java AWT应用程序中禁用系统键盘处理?
E.g.我的KeyboardListener
应该将这些键作为'常用'键和组合键处理,而不关闭窗口或进入窗口菜单。
答
实测此解决方案:
为标签 - 使用
Frame.setFocusTraversalKeysEnabled(false);
为Alt键 - 在每个键 事件处理代码块结束
然后加入keyEvent.consume();
,以找出是否Alt键或Ctrl键键被按下 - 使用keyEvent.isAltDown()
和keyEvent.isControlDown()
方法keyPressed
或keyReleased
事件。
感谢@水上飞行器为您的快速反应!
答
一种方法是以“kiosk模式”创建程序,这需要比Java更多的功能(例如JNA或JNI)。如果你谷歌这个或搜索这个网站,你会发现更多关于它。不过,如果我使用你的代码,我会非常沮丧,也许很生气,除非这是在专用的终端上运行。
编辑:另一种选择是按照这个线程:java-full-screen-program-swing-tab-alt-f4:
window.setExtendedState(Frame.MAXIMIZED_BOTH); //maximise window
window.setUndecorated(true); //remove decorations e.g. x in top right
window.setAlwaysOnTop(true);
编辑2:和此蛮力方法:Remove the possibility of using Alt-F4 and Alt-TAB in Java GUI
非常感谢!是的,第二个链接对我来说似乎是最有用的(开发远程控制软件),但是如果我一直“释放”Alt键,我怎么用'KeyboardListener'来挂钩它? – shybovycha