Como posso detectar se o bloqueio tampas é alternado em Swing?
Pergunta
Eu estou tentando construir um melhor campo de nome de usuário / senha para o meu local de trabalho e gostaria de ser capaz de reclamar quando eles têm suas Caps Lock.
Isso é possível? E se assim eu gostaria de tê-lo detectado antes dos tipos de cliente sua primeira carta.
Existe uma maneira não-plataforma específica para fazer isso?
Solução
Tente este, de java.awt.Toolkit, retorna um boolean:
Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)
Outras dicas
aqui é algumas informações sobre a classe http: // java .sun.com / J2SE / 1.5.0 / docs / api / java / awt / Toolkit.html # getLockingKeyState (int)
Além de resposta de Nick, a reagir a esta condição antes que o usuário pressiona uma tecla, você pode ouvir o evento de foco do seu componente de entrada de texto e testar o caps-lock como o componente recebe foco.