我的计算机上插有两个屏幕。 我尝试在每个屏幕上进行屏幕捕获。 我正在使用以下代码:
GraphicsDevice[] screens = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); //same screens[] with JRE7 and JRE8
Robot rbt0 = new Robot(screens[0]);
BufferedImage image0 = rbt0.createScreenCapture(new Rectangle(0,0,1024,1024));
Robot rbt1 = new Robot(screens[1]);
BufferedImage image1 = rbt1.createScreenCapture(new Rectangle(0,0,1024,1024));
javadoc没有提到JRE8上有一个关于Robot类的新功能。 这是JRE8的错误吗?有人有同样的问题吗? 如果确认此错误,我该如何将此问题传达给Oracle?
谢谢大家,
此致
答案 0 :(得分:1)
机器人计算屏幕坐标的方式已经改变了。
针对Java 8的javadoc提出了以下错误,这可能解释了您的问题。
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8033128
看起来这个改变是故意的,不是一个错误。
要捕获第二个屏幕,您可能需要按第一个屏幕的大小来偏移位置。
Robot rbt1 = new Robot(screens[1]);
BufferedImage image1 = rbt1.createScreenCapture(new Rectangle(1024,0,1024,1024));