如何通过 Robot 输入 Unicode 字符

How to type Unicode character via Robot

如何跨平台通过机器人输入unicode字符?我已经看到了解决方案,但只适用于 Windows 例如:How to make the Java.awt.Robot type unicode characters? (Is it possible?), 有没有办法在 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。另外,如果你真的必须模拟按键本身,这将不起作用,只有当你想输出它时。