【发布时间】:2012-08-01 01:08:06
【问题描述】:
我正在尝试为 Java AWT 机器人创建一个单独的类以用于项目,但我无法按照我的意愿设置它,因为我在网上找到的所有示例似乎都将代码打包成一个 . 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 和 new 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 编码很陌生,可能以错误的方式设置类,有没有办法修复该错误或拥有我想要的功能?
【问题讨论】: