2012-03-28 23 views
1

私は、テキストエディタを使ってテキストを入力し、JRadioButtonMenuitemsを含むメニューをJava(Swing)で作成します。メニューのように"言語"とJRadiobuttonMenuitemsは "Language"の下にあり、"スペイン語"、 "日本語"、 "英語"などです。ユーザーがクリックしてJRadioButtonMenuItemをクリックすると、選択した言語。 ユーザーがクリックして日本語オプションを選択した場合と同じように、エディタは現在の処理のためにIMEを日本語に変更し、それぞれの言語でテキストを入力できるようにする必要があります。Java SwingアプリケーションのIME言語を変更する

適切なIMEがインストールされています。手動で私はIMEを変更し、スイングコンポーネントに書き込むことができます。私の問題は、IMEをプログラムで読み込む方法です。

現在、私はこのアプリケーションをwindowsXP上に構築していますが、このアプリケーションでは各オペレーティングシステムのIME言語を変更します。

私はgoogleを持っていましたが、IMEを変更するための関連情報は見つかりませんでした。

おかげで

+0

これを行う方法はありますか?InputMehodインターフェイスを使用して言語入力方法を変更することができますが、それを行う方法はわかりません。 –

答えて

3

IME言語InputContextのインスタンスを取得し、同じようJEditorPaneのためのgetInputContextメソッドをオーバーライドしてJEditorPaneのために変更することができます。

final InputContext context = InputContext.getInstance(); 

jEditorPaneMain = new javax.swing.JEditorPane() 
    { 
     @Override 
     public InputContext getInputContext() { 
      return context; 
     } 
    }; 

と日本JRadioButtonMenuItemのクリックでのような任意の言語の選択に

はActionListenerの

jRadioButtonMenuItemJapanese.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jRadioButtonMenuItemJapaneseActionPerformed(evt); 
      } 
     }); 

次の内側のイベントハンドラを実行するを追加します。

private void jRadioButtonMenuItemJapaneseActionPerformed(java.awt.event.ActionEvent evt) {                
     context.selectInputMethod(Locale.JAPANESE); 

} 

これをWindows Xpで試しました。その完璧に動作します。

関連する問題