Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中模拟键盘按键_Java_Swing_Jtextfield_Awtrobot - Fatal编程技术网

如何在java中模拟键盘按键

如何在java中模拟键盘按键,java,swing,jtextfield,awtrobot,Java,Swing,Jtextfield,Awtrobot,我想模拟在JTextField中输入字符串(可以包含任何字符)。我正在为此使用新的KeyEventData()。但我无法确定如何处理{,},)等字符,以及如何将新字符附加到已输入的字符。这可能有助于模拟keyevents: 对于左大括号和右大括号,分别为KeyEvent.VK_大括号left和KeyEvent.VK_大括号right 希望这有助于=]检查VK_左括号、VK_右括号、VK_右括号和VK_左括号以处理这些字符 对于追加字符,您可以假设构建字符列表或构建字符串 编辑:要从keyeve

我想模拟在JTextField中输入字符串(可以包含任何字符)。我正在为此使用新的KeyEventData()。但我无法确定如何处理{,},)等字符,以及如何将新字符附加到已输入的字符。

这可能有助于模拟keyevents:

对于左大括号和右大括号,分别为KeyEvent.VK_大括号left和KeyEvent.VK_大括号right


希望这有助于=]

检查VK_左括号、VK_右括号、VK_右括号和VK_左括号以处理这些字符

对于追加字符,您可以假设构建字符列表或构建字符串

编辑:要从keyevent获取字符值,请尝试keyevent.getKeyChar()

您可以使用它,如图所示。例如,要获取
{
,您需要执行以下操作:

keyPress(KeyEvent.VK_SHIFT);
keyPress(KeyEvent.VK_OPEN_BRACKET);
keyRelease(KeyEvent.VK_OPEN_BRACKET);
keyRelease(KeyEvent.VK_SHIFT);

@cskoala:我无法确定在运行时按哪个键以及如何将键字符附加到已键入的字符串中。对不起,您到底想做什么?我以为您只是想模拟输入字符串?您是在运行时等待用户输入,还是在代码中按哪个键?我从字符串中获取输入n我想模拟在JTextField中键入的值。哦,好的,那么你不能逐个字符解析字符串,然后用一个switch语句对每个可能的字符进行转换,并以这种方式模拟按键吗?你认为这对你有用吗?如果是这样,并且你感到困惑,我可以提供一个小样本。因此,对于每个需要检查的字符,我可以ts值并基于该值决定是否使用shift。是的,
KeyEvent
实例是低级事件。当我将上述代码用于VK_PLUS时,我在键盘上得到无效的键代码例外,
VK_PLUS
被取消移位,而shift-
VK_等于
产生一个加号。