我使用以下方法尝试从非轻量级组件中获取 BufferedImage,但我得到一个黑色图像,所以它不起作用,我传递给它的组件是来自 JDIC 的 WebBrowser 对象,它是一个非轻量级组件:
public static BufferedImage getComponentImage(Component aComponent,Rectangle region) throws IOException
{
BufferedImage image= new BufferedImage(aComponent.getWidth(),aComponent.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics2D g2d=image.createGraphics();
SwingUtilities.paintComponent(g2d,aComponent,aComponent.getParent(),region);
g2d.dispose();
/*
Graphics g = image.getGraphics();
aComponent.paint(g);
// aComponent.paintAll(g);
// SwingUtilities.paintComponent(g,aComponent,aComponent.getParent(),region);
g.dispose();
*/
return image;
}
我也尝试了评论中的行,它们也不起作用,那么如何从java 中的非轻量级组件中捕获 BufferedImage 呢?