2012-03-28 129 views
1

我正在用Java编写一个文本编辑器(Swing),其中包含EditorPane以键入文本和包含JRadioButtonMenuitems的菜单。像菜单是“语言”和“语言”下的JRadiobuttonMenuitems是“西班牙语”,“日语”,“英语”等情景是,当用户单击并选择任何JRadioButtonMenuItem系统必须更改其IME按所选语言。 就像用户单击并选择日语选项编辑器必须将IME更改为日语以获取当前进程,并允许用户使用相应的语言输入文本。在Java swing应用程序中更改IME语言

我已经安装了正确的IME。手动我可以改变输入法,并能够在挥杆组件中书写。但我的问题是如何以编程方式加载IME。

目前我正在windowsXP上构建此应用程序,但希望此应用程序为每个操作系统更改IME语言。

我有谷歌它,但havenot发现任何相关信息,以改变输入法。

感谢

+0

有没有办法做到这一点?我发现InputMehod接口可能被用来改变语言输入法,但不知道如何做到这一点。 – 2012-03-29 04:55:11

回答

3

IME语言可以对JEditorPane通过获取InputContext实例和压倒一切的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上试过了。它的工作非常好。

相关问题