2014-03-04 48 views
0

我正在創建一個GUI,以保存用戶在JLabel上繪製的圖像。這是我的saveImage方法的代碼。我可以彈出框讓我可以選擇保存文件的位置,但實際上並未保存文件。如何從JLabel保存圖像

public void saveImage() 
    { 
     BufferedImage image = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_ARGB); 
     Graphics2D image2 = image.createGraphics(); 
     image2.setBackground(Color.WHITE); 
     image2.clearRect(0, 0, this.getWidth(), this.getHeight()); 
     this.paintAll(image2); 
     try 
     { 
      File output = new File("rectangle.png"); 
      ImageIO.write(image, "Rectangles", output); 
      final JFileChooser fchooser = new JFileChooser("."); 
      int retvalue = fchooser.showSaveDialog(RectangleLabel.this); 
      if (retvalue == JFileChooser.APPROVE_OPTION) 
      { 
       fchooser.setSelectedFile(output); 
       File f = fchooser.getSelectedFile(); 
      } 
     } 
     catch(IOException ie) 
     { 

     } 


    } 
+0

so ...哪裏的代碼? – Frakcool

回答

2

首先,你需要創建部件的圖像...

BufferedImage img = new BufferedImage(label.getWidth(), label.getHeight(), BufferedImage.TYPE_INT_ARGB); 
Graphics2D g2d = img.createGraphics(); 
label.printAll(g2d); 
g2d.dispose(); 

然後,你需要保存它...

ImageIO.write(img, "png", f); 

看看Writing/Saving an Image爲更多詳情