Как работает связывание клавиш Ctrl + B? - PullRequest
0 голосов
/ 10 июля 2011

Ctrl + B в Word и другие сочетания клавиш работают одинаково независимо от того, какой язык я использую - как выполняется эта привязка? Это можно сделать на Java?

Ответы [ 2 ]

3 голосов
/ 10 июля 2011

Если я вас правильно понимаю, мне интересно, что ввод Ctrl + B создает другой код клавиши, когда вы используете разные языки? В этом случае загляните в KeyEvent API. У него есть 2 соответствующих метода: getKeyCode () и getKeyChar ().

getKeyChar (), вызываемый при нажатии клавиши, зависит от текущего языка. getKeyCode () не зависит. Он всегда возвращает код ключа, а не букву, связанную с ним. Более того, я обнаружил, что (по крайней мере, в моей системе - Linux Fedora) getkeyChar (), вызванный для освобожденного ключа, возвращает английский символ, даже если текущий язык отличается.

Вот результаты нажатия и отпускания одной и той же клавиши с 3 различными языками ввода, установленными в моей системе: английский, русский и иврит.

нажата: ф 65 выпущено: 65 нажал: 65 выпущено: 65 нажал: ש 65 выпущено: 65

Как видите, код ключа всегда один и тот же, хотя символ другой.

1 голос
/ 10 июля 2011

См. Как использовать привязки клавиш для объяснения того, как это работает в Swing.

...