我想更改当前以编程方式使用的Windows键盘。
我正在为一种东方语言编写一个字典程序,我希望当用户单击不同的表列时,它切换到另一个键盘。
我对此进行了研究,并找到了使用Windows PowerShell和本机C++代码的示例。PowerShell似乎不起作用,我不熟悉本机Windows API和C。任何关于如何在 Java 中实际完成此操作的帮助将不胜感激。
这里有一篇博客文章解释了如何做到这一点: 更改输入法
简而言之:
yourMainJFrame.getInputContext().selectInputMethod(new Locale("fa", "IR"));
上面的方法对我不起作用,所以我使用机器人使用了原始方式
public static void switchKeyboardLanguage()
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.delay(10);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_SHIFT);
}
catch (AWTException e)
{
LogUtils.logError("Failed to use Robot, got exception: ", e);
}
}
});
}