程序功能:
将JPanel中的画面保存为文件。
参考文章:
学以致用——Java源码——使用随机几何图形制作屏保程序(Screen Saver with Shapes Using the Java 2D API),
https://blog.csdn.net/hpdlzu80100/article/details/86678149。
该文章中的所有截屏均使用本文中的方法自动保存。
源码:
public void savePic(JPanel jp){ //保存画板内容到文件中
//得到窗口内容面板
Container content=jp;
//创建缓冲图片对象
BufferedImage img=new BufferedImage(
jp.getWidth(),jp.getHeight(),BufferedImage.TYPE_INT_RGB);
//得到图形对象
Graphics2D g2d = img.createGraphics();
//将窗口内容面板输出到图形对象中
content.printAll(g2d);
//保存为图片
File f=new File("C:\\test\\saveScreen"+cnt+".jpg");
try {
System.out.println(f.exists());
ImageIO.write(img, "jpg", f);
} catch (IOException e) {
e.printStackTrace();
}
//释放图形对象
g2d.dispose();
cnt++;
}
如需自动截屏,可在JPanel的构造函数中定义一个Timer,然后在actionPerformed方法中调用本截屏(savePic)方法。
public ScreenSaverRandomShapesJPanel(int elements) {
Timer timer = new Timer(1000, this);
timer.start();
this.elements= elements; //初始化要显示的元素个数
}
@Override
public void actionPerformed(ActionEvent e) {
repaint();
savePic(this);
}