2 votes

Comment désactiver la gestion du clavier système dans une application Java AWT ?

Comment puis-je désactiver ces touches et leurs combinaisons, par exemple, Alt ; Alt + F4 et d'autres dans mon application Java AWT ?

Par exemple, mon KeyboardListener devrait traiter ces touches comme des touches et combinaisons "habituelles" sans fermer la fenêtre ni entrer dans le menu de la fenêtre.

2voto

L'une des solutions consiste à créer un programme en "mode kiosque", quelque chose qui nécessite plus que Java pour être réalisé (comme JNA ou JNI). Si vous faites une recherche sur Google ou sur ce site, vous en saurez plus à ce sujet. Cependant, si j'utilisais votre code, je serais très frustré et peut-être en colère, à moins que le programme ne soit exécuté sur un terminal kiosque dédié.

Edit : Une autre option est celle décrite dans ce fil de discussion : 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 : et cette méthode de force brute : Supprimer la possibilité d'utiliser Alt-F4 et Alt-TAB dans l'interface graphique Java

2voto

shybovycha Points 3199

J'ai trouvé cette solution :

  • pour Tab - utiliser Frame.setFocusTraversalKeysEnabled(false);

  • pour Alt - ajouter keyEvent.consume(); à la fin de chaque touche bloc de code pour la gestion des événements

Ensuite, pour savoir si Alt ou Ctrl est enfoncée - utiliser la touche keyEvent.isAltDown() y keyEvent.isControlDown() les méthodes de keyPressed ou keyReleased événements.

Merci, @Hovercraft , pour votre réponse rapide !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X