2016-10-08 15 views
0

私はキーボードの入力言語モードを自動的に変更することがしたい -キーボード言語の検出方法は?以下のJava言語で(NetBeansの)GUI、</p> <p><a href="https://i.stack.imgur.com/tQGP5.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/tQGP5.png" alt="enter image description here"></a></p> <p>については

韓国に "Kボックス"(すなわち、カーソルのフォーカスを取得したとき

英語へ

「Eボックスは、」フォーカスが取得する(つまり、カーソルが

は(FYI、キーボード入力言語モードをrを押すことで変更された「Eボックス」)であり、「Kボックス」)でありますight-ALTキー)。

これが可能ではない場合は、英語入力モードであるか韓国語入力モードであるかを検出する必要があります。次に、現在の入力言語モードをユーザーに伝えるラベルを作って、英語モードで韓国語を間違えて入力する必要はありません。

+0

あなたは 'user.country'と' user.language'プロパティを持っています。 (System.getProperty()を見てください。 –

+0

@ Jean-BaptisteYunèsはこれがSwingの使い方ですか?私は最終的にはオペレーティングシステムの設定が有効になることを期待しています –

+0

次のような結果が得られます: System.getPropertyキーボードがシステム・ロケールに準拠していない場合は、キーボードがシステム・ロケールに準拠していないと、キーボードが英語のままになっています。 –

答えて

0

以下の方法を定義し、それを使用して特定のコンポーネントのキーボード言語を変更しました。コードでは、 'ControlEnums.Languages'は自分の列挙型なので、その時点で無視することができます。

public static void setKeyboardLanguage(Component comp, 
    ControlEnums.Languages language) 
{ 
    try { 
     InputContext inCtx = comp.getInputContext(); 
     Character.Subset[] subset = new Character.Subset[1]; 

     if (language == KOREAN) { 
      // for Korean input mode 
      subset[0] = Character.UnicodeBlock.HANGUL_SYLLABLES; 
     } else { 
      // for English input mode 
      subset = null; 
     } 
     inCtx.setCharacterSubsets(subset); 
    } catch(Exception e) { 
    } 
} 

上記のメソッド 'setKeyboardLanguage'がうまく機能しています。誰かが私の研究についてより良いアイデアを持っていますか?

関連する問題

 関連する問題