Desenhar no java

Olá, boa tarde. Como eu faço prá desenhar um objeto no java (círculo ou retângulo por exemplo)? Tem alguma ferramenta que me ajude?


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class PainelMouse extends JPanel implements MouseMotionListener {
    public PainelMouse() {
        addMouseMotionListener(this);
    }
    public void mouseDragged(MouseEvent evt) {
        Graphics g = getGraphics();
        g.drawLine(evt.getX(), evt.getY(), 1, 1);
        g.dispose();
    }
    public void mouseMoved(MouseEvent evt) {
        System.out.println("x:" + evt.getX() + ", y:" +  evt.getY());
    }
}

class JanelaMouse extends JFrame {
    public JanelaMouse() {
        setSize(300, 300);
        getContentPane().add(new PainelMouse());
    }
}

public class DesenhoMouse {
    public static void main(String args[]) {
        JanelaMouse jm = new JanelaMouse();
        jm.show();
    }
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class PainelDesenhaFormas extends JPanel {
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.blue);
        g.drawRect(10, 10, 80, 80);
        g.drawRoundRect(100, 10, 80, 30, 15, 15);
        g.setColor(Color.red);
        for (int i = 0; i < 100; i += 3)
            g.drawOval(100, 100, i, i);
    }
}

class JanelaDesenhaFormas extends JFrame {
    public JanelaDesenhaFormas() {
        setTitle("Desenha Formas");
        setSize(300, 200);
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e)
            { System.exit(0); }
        });
        getContentPane().add(new PainelDesenhaFormas());
    }
}

public class DesenhaFormas {
    public static void main(String args[]) {
        JanelaDesenhaFormas jdf = new JanelaDesenhaFormas();
        jdf.show();
    }
}

Veja o tutorial:
http://java.sun.com/j2se/1.5.0/docs/guide/2d/spec/j2d-bookTOC.html

E na parte de imagens e movimento, consulte os pdfs do site:
Killer game programming in java

E aproveite também para baixar e pesquisar os fontes do meu jogo, o Vikanoid. Os tijolos, imagem de fundo, raquete e bola são pintados em código:
http://www.guj.com.br/posts/list/48344.java