2011-09-15 1 views
6

Je voudrais un exemple spécifique sur la façon de tourner le verrouillage des majuscules sur si il est éteint.Comment puis-je obtenir l'état de verrouillage des majuscules, et le mettre sur, si ce n'est pas déjà fait?

Je sais comment activer la clé, j'utilise ceci:

toolkit.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, Boolean.TRUE); 

qui changera l'état de la clé si elle est activée ou désactivée. Mais je veux m'assurer qu'il est activé au début de l'application.

(Le but final est d'avoir les voyants du clavier clignotent dans certaines séquences, qui fonctionne mieux si j'ai un certain état de départ.)

+1

Avez-vous regardé 'getLockingKeyState()'? http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Toolkit.html#getLockingKeyState(int) – NPE

+0

En fait, j'ai essayé d'utiliser cela, mais j'ai eu du mal à le mettre dans une instruction if else pour quelque raison. Je voudrais l'utiliser de cette façon. J'ai été capable d'utiliser cela comme un booléen et j'ai essayé de le faire de cette façon. Avez-vous un exemple où vous vérifiez l'état de la bascule de verrouillage des majuscules et si elle était déjà activée, vous continuerez simplement d'utiliser la méthode que j'ai énumérée ci-dessus pour l'activer. Merci de votre aide. Je vais regarder votre lien maintenant aussi. –

+0

Qu'essayez-vous de faire en faisant cela? Il semble (quoi que ce soit), que vous vous en approchez de la mauvaise façon. –

Répondre

14

Vous pouvez utiliser getLockingKeyState pour vérifier si le verrouillage des majuscules est actuellement fixé:

boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK); 

Cependant, il est inutile - setLockingKeyState ne bascule pas l'état de la clé, il le définit. Si vous passez true il définir l'état clé sur quel que soit l'état d'origine:

Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true); 
+0

Ok, je l'ai essayé de cette façon et comme c'est vrai, il l'éteindrait s'il était allumé et l'allumerait s'il était éteint. Bizarre ... –

+0

oh. attendez peut-être si je prends le boolean.TRUE et juste mettre le, true à la place –

+0

@Mike Il ne devrait pas importer; la fonction prend un 'boolean', donc passer un' Boolean' force juste java à le déboiter –

Questions connexes