我有以下 java 程序,它在记事本中编写java 。
static int keyInput[] = { KeyEvent.VK_J, KeyEvent.VK_A, KeyEvent.VK_V,
KeyEvent.VK_A, KeyEvent.VK_SPACE };
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Runtime.getRuntime().exec("notepad");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
InputContext context = InputContext.getInstance();
System.out.println(context.getLocale().getDisplayLanguage());
System.out.println(context.getLocale().getLanguage());
context.selectInputMethod(new Locale("hi")); //hi is ISO code for hindi. Also "hin" doesn't work
*/
Robot robot=null;
try {
robot = new Robot();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; i < keyInput.length; i++) {
robot.keyPress(keyInput[i]);
robot.delay(100);
}
}
现在我想用印地语写到我的记事本上。因此,我使用 Window 的语言栏手动将语言更改为印地语(请注意,我的默认语言仍然是英语),然后再次运行该程序。具有讽刺意味的是,程序本身将语言更改回英语(我可以在语言栏中看到语言被更改回)并用英语编写java。
但是,当我更改计算机的设置并将印地语设置为默认语言时,程序会以印地语运行和编写。
我在网上搜索并找到了一些关于名为 Locale 的类的信息,该类可能会影响语言输入。所以我包含了它(上面代码中的注释部分)但它不起作用。谁能告诉我如何在不更改默认语言的情况下通过java程序控制输入语言?提前致谢。