2011-09-20 2 views
0

У меня возникают проблемы с unicode и мнемониками в приложении Java SE. В строке меню я добавил меню с именем «FMnemonicUnicodeTest», а первая буква установлена ​​как мнемоника.
Целочисленное значение, заданное как мнемоника, составляет «1060».Java: Mnemonics и Unicode

  • Windows 7
  • Английский язык системы
  • Java SE 6, 32bit
  • русский/русский раскладки клавиатуры
  • Физическая русская клавиатура

Код:

menu.setMnemonic((int)(text.substring(index+1, index+2).charAt(0))); 

Меню отображается правильно (мнемонический символ подчеркнут).
Но мнемоника не расширяет меню с помощью «ALT + Ф» (клавиша отображается на физическом клавиатуре как «AФ»).

Мой вопрос: Почему мнемоника не работает и как ее можно исправить?

ответ

0

Долгое время я этого не делал, но я думаю, что для ярлыков меню вам нужно использовать одно из значений виртуального ключа.

Вы можете получить более подробную информацию в KeyEvent javadoc.

+0

Но это означало бы, что мнемоники применимы только для букв, доступных в виде виртуальных ключей. Когда я улавливаю keyevent, который бросается, когда я набираю «ALT + Ф», ключевой символ является правильным, но код ключа равен 65 (для A). – RusH

+0

Я использую файлы ресурсов для интернационализации, и они определяют перевод и мнемонику, которые следует использовать. Я должен был бы найти соответствующий виртуальный ключ для символа Юникода динамически, и символ, который используется как мнемонический, не подчеркивается, если я использую виртуальный ключ, который вызывается. – RusH