我正在尝试使用Robot().createScreenCapture()
捕获屏幕截图,但我发现它并没有捕获我想要它绘制的图形。为了测试这一点,我通过在整个屏幕上绘制一个白色矩形(在paint()方法的最开头)重置页面后,将其捕获屏幕截图的位置移动到右侧。运行代码并查看图像后,我看到图像并非像我预期的那样黑,但有一些图形!这很重要,因为我想在绘制一些图形之前捕获屏幕截图,然后绘制其他图形。我无法弄清楚可能出现的问题!我不明白捕捉截图是如何工作的,或者我做错了什么?
以下是一些代码,显示我的测试应该产生空白图像......
public void paint(Graphics g) {
int height = (int) maxscrn.getHeight();
int width = (int) maxscrn.getWidth();
Graphics2D g2d = (Graphics2D)g;
g2d.setColor(Color.white);
g2d.fillRect(0, 0,width,height);
Rectangle screenRect = new Rectangle(58,30,1190,45);
blurredImage = null;
try {
blurredImage = new Robot().createScreenCapture(screenRect);
} catch (AWTException e1) {
e1.printStackTrace();
}
try {
ImageIO.write(blurredImage, "bmp", new File("topbar.bmp"));
} catch (IOException e) {
e.printStackTrace();
}
...
提前感谢您的帮助!