0

嗨,我想在 JTextField 中动态地(在运行时)编写一些文本(除了英语,可能是阿拉伯语、中文等)。

使用硬编码逻辑。通过显式管理每个键,我可以使用硬编码逻辑来编写它。就像这样。

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
      char ch=evt.getKeyChar();            
        evt.consume();
   String text = ""; 
   switch(ch){
            case 'a':
                text=text+"\u0627";
                break;
            case 'A':
                text=text+"\u0622";
                break;
     }
   jTextField1.setText(text);

}

使用语言环境类。 我想知道,如何动态地做到这一点。为此,我探索了 java 的语言环境类。我能够获得所有国家和支持的语言、代码等的列表我正在使用此代码将文本字段的语言环境动态设置为日语,但它仍然以英语书写

Locale aLocale = new Locale.Builder().setLanguage("ja").build();
jTextField1.getInputContext().selectInputMethod(aLocale);

我还了解到,swing 组件的 java 本地化独立于底层主机操作系统本地化。因此,如果是这种情况,那么当我从键盘上按任意键时,为什么 java 文本字段不让我输入其他字符(除英语之外)?

或者有什么方法可以做到吗?

我正在做一些研究项目,我被困在这里。请帮我。谢谢。

4

0 回答 0