Captura de pantalla en Java que no captura la pantalla completa.

Tengo un pequeño código que utilizo para hacer un seguimiento del tiempo, simplemente toma una foto de mi escritorio cada cuatro minutos para que luego pueda volver a lo que he estado haciendo durante el día. Funciona muy bien. , excepto cuando me conecto a un monitor externo: este código solo toma una captura de pantalla de la pantalla de mi computadora portátil, no el monitor externo más grande en el que estoy trabajando. ¿Alguna idea de cómo cambiar el código? Estoy ejecutando OSX en caso de que sea relevante ...

<code>import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;

class ScreenCapture {
    public static void main(String args[]) throws
        AWTException, IOException {
            // capture the whole screen
int i=1000;
            while(true){
i++; 
                BufferedImage screencapture = new Robot().createScreenCapture(
                        new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );

                // Save as JPEG
                File file = new File("screencapture"+i+".jpg");
                ImageIO.write(screencapture, "jpg", file);
try{
Thread.sleep(60*4*1000);
}
catch(Exception e){
e.printStackTrace();
}

            }
        }
}
</code>

Siguiendo la solución dada, realicé algunas mejoras y el código, para aquellos interesados, está bajo revisión de código enhttps://codereview.stackexchange.com/questions/10783/java-screengrab

Respuestas a la pregunta(2)

Su respuesta a la pregunta