Captura de tela em Java não capturando a tela inteira
Eu tenho um pequeno pedaço de código que eu uso para manter o controle do tempo - muito simplesmente ele tira uma foto da minha área de trabalho a cada quatro minutos para que mais tarde eu possa voltar sobre o que eu tenho feito durante o dia - Ele funciona muito bem , exceto quando eu me conecto a um monitor externo - este código leva apenas uma captura de tela da tela do meu laptop, não o monitor externo maior do qual estou trabalhando - alguma idéia de como alterar o código? Estou executando o OSX caso isso seja 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>
Seguindo a solução dada, fiz algumas melhorias e o código, para os interessados, está sob revisão de código emhttps://codereview.stackexchange.com/questions/10783/java-screengrab