3

アプリにテキストを入力するために、awtからRobotを使用しようとしています。問題は、ê、à、áなどの文字を入力できないことです。たとえば、このような印刷を試してみましたが、それでも機能しますが、何も印刷されません。VK_CIRCUMFLEX

それが重要かどうかはわかりませんが、私はMacでテストしています。

どんな助けでも来るでしょう。

4

1 に答える 1

4

クリップボードをCTRL/COMMAND + Vと組み合わせて使用​​すると、作業を行うことができます。以下のコードは、少なくともWindowsでは機能します(Macキーコンボでは、貼り付けを行うために別のシーケンスが必要になる可能性があります)。

public static void main(String[] args) throws AWTException {
    String osName = System.getProperty("os.name");        
    boolean isOSX = osName.startsWith("Mac OS X");
    boolean isWin = osName.startsWith("Windows");

    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    StringSelection str = new StringSelection("Héllõ Wörld");
    clipboard.setContents(str, str);
    Robot robot = new Robot();

    if (isMac) {
        // ⌘-V on Mac
        robot.keyPress(KeyEvent.VK_META);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_META);        
    } else if (isWin) {
        // Ctrl-V on Win
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_CONTROL);
    } else {
        throw new AssertionError("Not tested on "+osName);
    }
}
于 2012-03-22T02:56:57.917 に答える