Java, получая ошибки при создании снимка экрана размером «Прямоугольник» - PullRequest
0 голосов
/ 16 марта 2012

В настоящее время я работаю над проектом, и одной из функций, которые я хочу, чтобы этот проект, было выполнение X при изменении определенной и небольшой области экрана (100 * 100 пикселей).

В порядкечтобы сделать это, я планирую сделать снимок экрана с областью и сохранить его в переменной, а затем каждые х секунд буду делать новый снимок экрана с той же областью и сравнивать их.

Чтобы определить область, которую я хочуСнимок экрана: я сохраняю щелчок за пределами окна программы в верхнем левом углу.Вот методы, которые я использую для этого:

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" в project.v2.pkg0.Safety.TakeShot(Safety.java:24)

Что я делаю, что создает эту ошибку?

...