title: Save image from JPanel after draw
body: <p>I'm newbie in jave, my first project is draw, and save a image from JPanel, my draw is done, but I cant save it after I draw in JPanel :(, So can you help me to fix it
   when I open the image after draw, It doesn't contain anything :(
  here my codes: </p>
  
  <pre><code>package image;
  import java.awt.BorderLayout;
  import java.awt.Button;
  import java.awt.Color;
  import java.awt.Graphics2D;
  import java.awt.Point;
  import java.awt.Graphics;
  import java.awt.event.MouseAdapter;
  import java.awt.event.MouseEvent;
  import java.awt.event.ActionListener;
  import java.awt.event.ActionEvent;
  import java.awt.image.BufferedImage;
  import java.io.File;
  import java.io.IOException;
  import java.nio.file.Path;
  import javax.imageio.ImageIO;
  import javax.swing.JButton;
  import javax.swing.JFileChooser;
  import javax.swing.JFrame;
  import javax.swing.JOptionPane;
  import javax.swing.JPanel;
  
  
  public class paint extends JFrame{
  private Point points[] = new Point[10000];
  private Point pointends[] = new Point[10000];
  private int pointCount = 0;
  private JButton save_btn;
  public paint()
  {
      panel paint2 = new panel();
      add(paint2,BorderLayout.CENTER);
  }
  private class panel extends JPanel
  {   
      private paint my_paint;
      public panel()
      {   
          setBackground(Color.WHITE);
          save_btn = new JButton();
          save_btn.setText("123");
          this.add(save_btn);
          ButtonHandler handler1 = new ButtonHandler();
          save_btn.addActionListener(handler1);
          MouseHandler handler = new MouseHandler();
          this.addMouseMotionListener(handler);
  
          this.addMouseListener(handler);
      }
      private class ButtonHandler implements ActionListener
      {
  
          @Override
          public void actionPerformed(ActionEvent arg0) {
              // TODO Auto-generated method stub
              savefile();
          }
  
      }
      @Override
      protected void paintComponent(Graphics g) 
      {
          // TODO Auto-generated method stub
          super.paintComponent(g);
          for(int i = 0;i &lt;pointCount;i++)
          {   
              g.setColor(Color.RED);
              g.drawLine(points[i].x, points[i].y, pointends[i].x, pointends[i].y);
          }           
      }
  
  
  
  private class MouseHandler extends MouseAdapter
  {  
      @Override
      public void mouseDragged(MouseEvent e) 
      {
          // TODO Auto-generated method stub
              pointends[ pointCount-1] = e.getPoint();
              repaint();
  
  
      }
      @Override
      public void mousePressed(MouseEvent e) {
          // TODO Auto-generated method stub
          super.mousePressed(e);
          if(pointCount &lt; points.length)
          {
              points[ pointCount ] = e.getPoint();
              pointends[ pointCount ] = e.getPoint();
              pointCount++; 
              repaint();
          }
      }
      @Override
      public void mouseReleased(MouseEvent e) {
          // TODO Auto-generated method stub
          super.mouseReleased(e);
          /*pointends[pointCount]=e.getPoint();
          repaint();
          pointCount++;
      */
      }
  
      }
  
  }
  public void savefile()
  {
      BufferedImage image2 = new BufferedImage(panel.WIDTH, panel.HEIGHT,     BufferedImage.TYPE_INT_RGB);
      JFileChooser jFile = new JFileChooser();
      jFile.showSaveDialog(null);
      Path pth = jFile.getSelectedFile().toPath();
      JOptionPane.showMessageDialog(null, pth.toString());
      Graphics2D graphics2D = image2.createGraphics();
      try {
          ImageIO.write(image2, "", new File(pth.toString()));
      } catch (IOException ox) {
          // TODO: handle exception
          ox.printStackTrace();
  
  }
  }
  }
  </code></pre>