将JPanel转换为图像

Jef*_*rey 15 java swing image jpanel

有没有办法将JPanel(尚未显示)转换为BufferedImage?

谢谢,

杰夫

Tom*_*Tom 28

从BufferedImage可以创建一个图形对象,您可以使用它在JPanel上调用paint,如:

public BufferedImage createImage(JPanel panel) {

    int w = panel.getWidth();
    int h = panel.getHeight();
    BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    Graphics2D g = bi.createGraphics();
    panel.paint(g);
    g.dispose();
    return bi;
}
Run Code Online (Sandbox Code Playgroud)

您可能需要确保先设置面板的大小.