Java,在创建大小为“Rectangle”的屏幕截图时出错

时间:2012-03-16 00:22:10

标签: java mouseevent bufferedimage

我目前正在开发一个项目,我希望这个项目有一个功能就是当屏幕的特定和小区域(100 * 100像素)发生变化时做X.

为了做到这一点,我计划拍摄该区域的屏幕截图并将其存储在一个变量中,然后我将每隔x秒拍摄同一区域的新屏幕截图并进行比较。

要定义我想要截屏的区域,我将程序窗口外的点击存储为左上角。 这些是我正在使用的方法:

public static void MouseLocation() {

        Toolkit.getDefaultToolkit().addAWTEventListener(new Listener(),  
                        AWTEvent.MOUSE_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK);
                }



    private static class Listener implements AWTEventListener {
        @Override
        public void eventDispatched(AWTEvent event) {
            if (Global.point [1] == null)
            {
            Global.point[Global.x] = (MouseInfo.getPointerInfo().getLocation());
            Global.x++;
            }
        }
    }

一旦定义了我的左上角,然后使用以下方法截取屏幕截图:

    public static void TakeShot(){
       int x = (int)(Global.point[1].getX());
       int y = (int)(Global.point[1].getY());

        try {
    Robot robot = new Robot();
Rectangle captureSize = new Rectangle(x,y, 100, 100);
    Global.bufferedImage = robot.createScreenCapture(captureSize);
}
catch(AWTException e) {
}
    }

这是错误 当我调用方法TakeShot()时,我得到错误:  “线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException”at project.v2.pkg0.Safety.TakeShot(Safety.java:24)

我正在做的是创建此错误?

0 个答案:

没有答案