如何跨平台通过机器人输入unicode字符?我已经看到了此问题的解决方案,但仅适用于 Windows,例如:How to make the Java.awt.Robot type unicode strings? (可以吗?), 有没有办法在 Linux 和 Mac 上做到这一点?
如果您的目标是在输入字段中写入一些内容,那么这可能会起作用:
// Set desired character
String c = "ä";
StringSelection selection = new StringSelection(c);
// Copy it to clipboard
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, null);
// Paste it
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
基本上模拟复制粘贴,但它会删除您当前的剪贴板内容,除非您保存它。在 Mac OS 下,您需要使用
VK_META
而不是 VK_CONTROL
。另外,如果你真的必须模拟按键本身,只有当你想输出它时,这将不起作用。