Я хочу перехватить клавишу или комбинацию клавиш (скажем, «b», Shift-b, Alt-b и Shift-Alt-b), которые вводятся с клавиатуры для приложения Java Swing. Я хочу сделать это для каждой клавиши на клавиатуре. После захвата ключа я хочу заменить его другим символом или строкой по своему выбору и отобразить заменяющий символ или строку в объекте JTextPane в том же месте в JTextPane, где был набран исходный символ.
Идея состоит в том, чтобы сопоставить клавиши обычной QWERTY-клавиатуры с символами другого алфавита и языка, например хинди.
Я могу легко перехватить клавиши QWERTY-клавиатуры, используя следующий вид кода:
JTextPane textPane = new JTextPane();
KeyStroke key = KeyStroke.getKeyStroke('b');
InputMap inputMap = textPane.getInputMap();
inputMap.put(key, DefaultEditorKit.forwardAction);
Однако для InputMap я могу заменить KeyStroke другим «действием», например DefaultEditorKit.forwardAction, а не другим символом или строкой. Мне не обязательно использовать InputMap - подойдет любой метод, позволяющий сопоставить ввод с клавиатуры с другим символом или строкой.
Спасибо, Сандип