使用Java在记事本中用印地语编写

时间:2014-09-24 08:05:30

标签: java windows input-language

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

0 个答案:

没有答案