如何在Java AWT应用程序中禁用系统键盘处理?

问题描述:

如何禁用此类密钥及其组合,例如,Alt; Alt + F4和其他在我的Java AWT应用程序?如何在Java AWT应用程序中禁用系统键盘处理?

E.g.我的KeyboardListener应该将这些键作为'常用'键和组合键处理,而不关闭窗口或进入窗口菜单。

实测此解决方案:

  • 标签 - 使用Frame.setFocusTraversalKeysEnabled(false);

  • Alt键 - 在每个键 事件处理代码块结束

然后加入keyEvent.consume();,以找出是否Alt键Ctrl键键被按下 - 使用keyEvent.isAltDown()keyEvent.isControlDown()方法keyPressedkeyReleased事件。

感谢@水上飞行器为您的快速反应!

一种方法是以“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

+0

非常感谢!是的,第二个链接对我来说似乎是最有用的(开发远程控制软件),但是如果我一直“释放”Alt键,我怎么用'KeyboardListener'来挂钩它? – shybovycha