对于下面Java语言的(NetBeans)GUI,
我想自动更改键盘输入语言模式 -
当“K Box”获得焦点时(例如,光标在“K Box”中),到韩语,
到英语当“E Box”获得焦点时(即光标在“E Box”中)
(仅供参考,通过按右ALT键更改键盘输入语言模式)。
如果无法做到这一点,我想检测它是处于英文输入模式还是处于韩文输入模式。然后我会给用户制作一个告诉当前输入语言模式的标签,这样他们就不需要在英文模式下输入韩文错误。
答案 0 :(得分:0)
我定义了以下方法并使用它来更改特定组件的键盘语言。代码'ControlEnums.Languages'是我自己的枚举类型,所以你暂时可以忽略它。
public static void setKeyboardLanguage(Component comp,
ControlEnums.Languages language)
{
try {
InputContext inCtx = comp.getInputContext();
Character.Subset[] subset = new Character.Subset[1];
if (language == KOREAN) {
// for Korean input mode
subset[0] = Character.UnicodeBlock.HANGUL_SYLLABLES;
} else {
// for English input mode
subset = null;
}
inCtx.setCharacterSubsets(subset);
} catch(Exception e) {
}
}
我发现上面的方法'setKeyboardLanguage'效果很好。有没有人对我的研究有更好的想法?