我正在使用Java机器人函数进行一点游戏。
但是,由于我认为这是背面的重大痛苦,所以我想知道我是否可以抽象该功能并创建更快的方法。
现在我首先完成了以下操作:
public abstract class Cyborg {
public static void Cyborg(KeyEvent args[]) throws AWTException{
try {
Robot robot = new Robot();
for(KeyEvent k:args){
robot.keyPress(KeyEvent.k);
}
} catch(AWTException e){
e.printStackTrace();
}
}
}
我目前对我有些困惑的我目前遇到的错误是无法解决k。但是,在KeyEvent args[]
部分中,应该将其归类为关键词,还是应该是字符串?当我来自PHP背景时,我开始与Java掌握。谁能建议这是否是最好的方法?而且,为什么KeyEvent.k
是否是KeyEvent
还是String
?任何其他建议这样做是否有效/无法正常工作或尝试避免的问题将是很棒的。
谢谢
robot.keyPress(KeyEvent.k);
这将行不通,因为这将尝试找到KeyEvent
的static
member
称为k
。您已经命名了您的增量对象k
,因此请使用k
。
robot.keyPress(k.getKeyCode());
更彻底的解释
当您说以下内容时:
String[] strs = {"hello", "there", "my", "friend"};
for(String str : strs)
{
// Do something.
}
您正在制作的计算机执行的效果与:
for(int x = 0; x < strs.length; x++)
{
String str = strs[x];
}
因此,您正在定义一个名为str
的String
对象,该对象将包含strs
数组中包含的当前String
对象。
此行
robot.keyPress(KeyEvent.k);
应该像这样
robot.keyPress(k.getKeyCode());