How can I detect if caps lock is toggled in Swing?
Question
I'm trying to build a better username/password field for my workplace and would like to be able to complain when they have their caps lock on.
Is this possible? And if so I'd like to have it detected before the client types their first letter.
Is there a non-platform specific way to do this?
Solution
Try this, from java.awt.Toolkit, returns a boolean:
Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)
OTHER TIPS
here is some info on the class http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Toolkit.html#getLockingKeyState(int)
In addition to Nick's answer, to react to this condition before the user presses a key, you can listen to the focus event of your text entry component and test the caps-lock as the component receives focus.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow