shybovycha
shybovycha

Reputation: 12255

how to disable system keyboard handling in Java AWT Application?

How can i disable such keys and their combinations as, for example, Alt ; Alt + F4 and others in my Java AWT application?

E.g. my KeyboardListener should handle that keys as 'usual' keys and combinations without closing window or entering window menu.

Upvotes: 2

Views: 5561

Answers (2)

shybovycha
shybovycha

Reputation: 12255

Found this solution:

  • for Tab - use Frame.setFocusTraversalKeysEnabled(false);

  • for Alt - add keyEvent.consume(); at the end of each key event handling code block

Then, to find out if Alt or Ctrl key is pressed - use keyEvent.isAltDown() and keyEvent.isControlDown() methods of keyPressed or keyReleased events.

Thanks, @Hovercraft , for your quick response!

Upvotes: 2

Hovercraft Full Of Eels
Hovercraft Full Of Eels

Reputation: 285405

One way is to create a program in "kiosk mode", something that requires more than Java to achieve (such as JNA or JNI). If you google this or search this site for this, you'll find out more about it. If I were using your code, though, I'd be very frustrated and perhaps angry, unless this were being run on a dedicated kiosk terminal.

Edit: Another option is as per this thread: 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);

Edit 2: and this brute-force method: Remove the possibility of using Alt-F4 and Alt-TAB in Java GUI

Upvotes: 2

Related Questions