Как я могу получить состояние Caps Lock и включить его, если это не так? - PullRequest
10 голосов
/ 15 сентября 2011

Я хотел бы привести конкретный пример того, как включить заглавные буквы , если выключен.

Я знаю, как переключать клавишу, я использовал это:

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

Это изменит состояние ключа, независимо от того, включен он или нет.Но я хочу убедиться, что он включен в начале приложения.

(Конечная цель состоит в том, чтобы светодиоды клавиатуры мигали в определенных последовательностях, что работает лучше, если у меня есть определенное начальное состояние.)

1 Ответ

16 голосов
/ 15 сентября 2011

Вы можете использовать getLockingKeyState, чтобы проверить, установлен ли Caps Lock в данный момент:

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

Однако в этом нет необходимости - setLockingKeyState не переключает состояние клавиши, а устанавливает его. Если вы передадите его true, он будет включать состояние ключа независимо от исходного состояния:

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