2011-09-20 10 views
0

現在、Java SEアプリケーションでUnicodeとニーモニックに問題があります。 メニューバーに「ФMnemonicUnicodeTest」という名前のメニューが追加され、最初の文字がニーモニックとして設定されています。
ニーモニックとして設定されている整数値は「1060」です。Java:ニーモニックとUnicode

  • のWindows 7
  • 英語システムの言語
  • のJava SE 6、32ビット
  • ロシア語/ロシア語のキーボードレイアウト
  • 物理ロシア語キーボード

コード:

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

メニューが正しく表示されます(ニーモニック文字に下線が引かれています)。
ニーモニックでは、 "ALT +Ф"(キーは物理キーパッドに "AФ"として表示されます)のメニューは展開されません。

私の質問です:ニーモニックはなぜ機能しないのですか?どのように修正できますか?

答えて

0

私はこれをやっていませんが、メニューショートカットでは、仮想キー値の1つを使用する必要があります。

さらに詳しい情報は、KeyEvent javadocを参照してください。

+0

これは、ニーモニックは仮想キーとして利用できる文字にのみ適用可能であることを意味します。 「ALT +Ф」と入力すると投げられるキーイベントを捕まえると、キー文字は右ですが、キーコードは65(Aの場合)です。 – RusH

+0

私は国際化のためにリソースファイルを使用しており、使用すべき翻訳とニーモニックを定義しています。私は、ユニコード文字の対応する仮想キーを動的に見つけなければならず、ニーモニックとして使用される文字にはスローされた仮想キーを使用すると下線が引かれません。 – RusH