本文介绍了在JTextfield中保留键盘布局?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

简单示例:2 JTextFields ,一个用于西班牙语单词,另一个用于翻译。
有没有办法保留每个 JTextField 的键盘布局,以便用户不必来回切换?

Simple example: 2 JTextFields, one for a spanish word another one for it's translation.Is there a way to preserve keyboard layout per JTextField so that the user wouldn't have to switch back and forth?

TIA。

推荐答案

是的,此演示代码使用每个文本字段中所选语言环境的键盘布局:

Yes, this demo code uses the keyboard layout for the selected locales in each text field:

public class InputMethodTest {

  public static void main(String[] args) {
    final InputContext en = InputContext.getInstance();
    en.selectInputMethod(Locale.UK);
    final InputContext es = InputContext.getInstance();
    es.selectInputMethod(new Locale("es", "ES"));
    JTextArea english = new JTextArea() {
      @Override
      public InputContext getInputContext() {
        return en;
      }
    };
    JTextArea spanish = new JTextArea() {
      @Override
      public InputContext getInputContext() {
        return es;
      }
    };

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new GridLayout());
    frame.getContentPane().add(new JScrollPane(english));
    frame.getContentPane().add(new JScrollPane(spanish));
    frame.setSize(600, 400);
    frame.setVisible(true);
  }
}

在带有EN和ES键盘布局的Windows XP Home上测试安装(通过控制面板>区域和语言选项>语言>详细信息...)。有关详细信息,请参阅 。

Tested on Windows XP Home with EN and ES keyboard layouts installed (via Control Panel > Regional and Language Options > Languages > Details...). See the Java Input Method Framework for more details.

这篇关于在JTextfield中保留键盘布局?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 08:57