我有以下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程序控制输入语言而不改变默认语言?提前谢谢。