Gráficos java

Hola mira tengo este código : me crea una figura con su color y todo y me permite moverla por toda la ventana..
Este es.
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class ArrastrarGrafico extends Canvas implements MouseMotionListener
{
    private int xRectangulo = 0;
    private int yRectangulo = 0;
    private int anchoRectangulo = 100;
    private int altoRectangulo = 100;
    private boolean arrastrando = false;
    private int xAnteriorRaton;
    private int yAnteriorRaton;
    public ArrastrarGrafico()
    {
        addMouseMotionListener(this);
    }
    public Dimension getPreferredSize()
    {
        return new Dimension(500, 500);
    }
    public void paint(Graphics g)
    {
        g.setColor(Color.RED);
        g.fillRect(xRectangulo, yRectangulo, anchoRectangulo, altoRectangulo);
    }
    public static void main(String[] args)
    {
        JFrame v = new JFrame("Arrastrar Grafico");
        ArrastrarGrafico c = new ArrastrarGrafico();
        v.getContentPane().add(c);
        v.pack();
        v.setVisible(true);
        v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public void mouseDragged(MouseEvent e)
    {
        if (!arrastrando)
        {
            if (estaDentro(e))
            {
                xAnteriorRaton = e.getX();
                yAnteriorRaton = e.getY();
                arrastrando = true;
            }
        }
        else
        {
            xRectangulo = (xRectangulo + e.getX()) - xAnteriorRaton;
            yRectangulo = (yRectangulo + e.getY()) - yAnteriorRaton;
            xAnteriorRaton = e.getX();
            yAnteriorRaton = e.getY();
            repaint();
        }
    }
    private boolean estaDentro(MouseEvent e)
    {
        if (
            (e.getX() > xRectangulo) &&
                (e.getX() < (xRectangulo + anchoRectangulo)) &&
                (e.getY() > yRectangulo) &&
                (e.getY() < (yRectangulo + altoRectangulo)))
        {
            return true;
        }
        return false;
    }
    public void mouseMoved(MouseEvent e)
    {
        arrastrando = false;
    }
}
----------------------------------------------------------------------|
Lo que quiero hacer es crear una ventana ponerle un botón y que cuando le de click en el botón, en la ventana me aparezca la figura y que la pueda mover todo eso.
Como unificaría esos códigos..
Gracias...

Añade tu respuesta

Haz clic para o