我正在尝试为Java AWT Robot创建一个单独的类,以便与项目一起使用,但是由于我在网上找到的所有示例似乎都将代码打包到单个.java文件中,所以我无法设置它的方式。
我的代码工作正常,但我想知道如果我可以更好地设置功能。
RobotLib.java类的代码如下所示:
package com.z;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class RobotLib {
private static Robot robot;
// Press Function
public void Press(int key, int time){
try {
Robot robot = new Robot();
robot.keyPress(key);
robot.delay(time);
robot.keyRelease(key);
} catch (AWTException e) {
e.printStackTrace();
}
}
}我的Example.java代码是:
package com.z;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Example {
public static void main(String[] args) {
RobotLib robot = new RobotLib();
robot.Press(KeyEvent.VK_A,100); // type a
}
}有了RobotLib.java类,我想知道是否有可能没有用try / catch和新的Robot()包装它们的功能,而不是上面的版本,它会是这样的:
public void Press(int key, int time){
robot.keyPress(key);
robot.delay(time);
robot.keyRelease(key);
}try / catch和new Robot()似乎是必需的,如果我把它们带走,我会得到这样的错误:
Exception in thread "main" java.lang.NullPointerException
at com.z.RobotLib.Press(RobotLib.java:35)
at com.z.Example.main(Example.java:14)我对Java编码颇为陌生,可能会以错误的方式设置类,有没有办法解决这个错误或者我想要的功能?