Problemas com Java2D

Pessoal, não sei se estou fazendo certo. Mas o programa executa direitinho, não dá erro. Mas a imagem bolinha nao aparece. Alguém pode me ajudar?

[code]
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class principal extends JFrame{
private BufferedImage bola;

public principal(){

    super("Jogo");
    setSize(800, 600);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setIgnoreRepaint(true);
    setResizable(false);
    setVisible(true);

    //Armazena a imagem da bola no buffer
    File f_bola = new File("C:\\Users\\Bruno\\Documents\\NetBeansProjects\\Jogo\\src\\bola.PNG");
    try {
        bola = ImageIO.read(f_bola);
    } catch (IOException ex) {
        Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
    }


}

public void render(Graphics g){
    g.drawImage(bola,0,0,0,0,null);

}

public static void main(String[] args){
    new principal();
}

}[/code]

Eu acho que você deve sobrescrever o método

Aconselho um ótimo site para gaming tutorials para Java e outros ! O PontoV e tem esse aqui especifico para Java2D.

Voce devia estender um JPanel para poder sobreescrever o paintComponent(Graphics g) dele.