java - 在 JTextfield 中保留键盘布局?

标签 java swing keyboard-layout

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

TIA。

最佳答案

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

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 上测试(通过控制面板 > 区域和语言选项 > 语言 > 详细信息...)。查看Java Input Method Framework了解更多详情。

关于java - 在 JTextfield 中保留键盘布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/834758/

相关文章:

java - 未找到 fragment MyFragment id 0x 的 View

java - 是否应该覆盖哈希码以将对象存储在 ArrayList 中?

java - 删除/禁用/覆盖 Swing 的焦点遍历键

android - 如何在键字符映射文件中包含键布局

linux - 在 Linux 中获取当前事件的键盘布局(语言)

java - 为什么我们不能在 Java 7+ 中打开类?

java - 在终端中执行C程序和在Java中使用Runtime.getRuntime().exe()执行C程序有什么不同

java - 矩形可以作为面板吗?

java - 无法设法在两个类之间使用 ActionListener

vba - 如何使用 VBA 从 64 位 Windows Vista 调用 ActivateKeyboardLayout