Przechwytywanie ekranu w Javie nie przechwytuje całego ekranu
Mam niewielki fragment kodu, którego używam do śledzenia czasu - po prostu robi zdjęcie mojego pulpitu co cztery minuty, dzięki czemu później mogę cofnąć się do tego, co robiłem w ciągu dnia - działa świetnie , z wyjątkiem sytuacji, gdy łączę się z zewnętrznym monitorem - ten kod wykonuje tylko zrzut ekranu mojego ekranu laptopa, a nie większy zewnętrzny monitor, z którego pracuję - jakieś pomysły, jak zmienić kod? Używam OSX na wypadek, gdy jest to istotne ...
<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>
Zgodnie z podanym rozwiązaniem wprowadziłem pewne ulepszenia, a kod dla zainteresowanych jest poddawany przeglądowi kodu pod adresemhttps://codereview.stackexchange.com/questions/10783/java-screengrab