Java 将jLabel上的图标保存为硬盘上的图像

Java 将jLabel上的图标保存为硬盘上的图像,java,image,swing,jlabel,imageicon,Java,Image,Swing,Jlabel,Imageicon,我的代码中生成了一个图像图标,我将其作为图标放置在标签上,如下代码所示: ImageIcon icon = new ImageIcon(barcode.drawBarcode()); jLabel36.setIcon(icon); 现在我的问题是如何将ImageIcon类型更改为Image并将其保存在硬盘上。当我尝试键入cast ImageIcon to Image时,出现以下错误: java.lang.ClassCastException:javax.swing.ImageIcon无法转换为

我的代码中生成了一个图像图标,我将其作为图标放置在标签上,如下代码所示:

ImageIcon icon = new ImageIcon(barcode.drawBarcode());
jLabel36.setIcon(icon);
现在我的问题是如何将ImageIcon类型更改为Image并将其保存在硬盘上。当我尝试键入cast ImageIcon to Image时,出现以下错误:

java.lang.ClassCastException:javax.swing.ImageIcon无法转换为java.awt.Image

有人能建议我如何完成这项任务吗?键入转换和保存图像。

只需使用:

只需使用:


只要有对ImageIcon的引用,否则需要将图标绘制到缓冲图像的图形上下文中只要有对ImageIcon的引用,否则需要将图标绘制到缓冲图像的图形上下文中
// get image from imageicon
Image image = icon.getImage();

// cast it to bufferedimage
BufferedImage buffered = (BufferedImage) image;

try {
    // save to file
    File outputfile = new File("saved.png");
    ImageIO.write(buffered, "png", outputfile);
} catch (IOException e) {
    e.printStackTrace();
}