Problemas para carregar imagem em JFrame

Pessoal, não estou conseguindo entender bem a logica para carregar imagens num JFrame. Seria para um jogo, não sei qual o melhor método, pra isso.
Segue abaixo o código-fonte.

[code]
/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package jogo;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;

/**
*

  • @author USER
    */
    public class Pong extends JFrame{
    BufferedImage imagem;
    Graphics g = imagem.createGraphics();
    File arquivo = new File(“imagem.png”);

    public Pong(){
    //criando janela
    super(“Pong”);
    //tamanho da janela
    setSize(300,300);
    //localizacao
    setLocationRelativeTo(null);
    //operacao ao fechar janela
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //carregando imagem
    try {
    imagem = ImageIO.read(arquivo);
    } catch (IOException ex) {

     }
    

    }

    //classe de desenho

    private void paint(Graphics g){
    //objeto graphics
    g.drawImage(imagem,0,0,this);
    }

    public static void main(String[] args) {
    Pong janela = new Pong();
    janela.setVisible(true);
    }
    }[/code]

Da um erro no método paint()

Alguém pode me ajudar?

Crie um jLabel… apague o texto e coloque a imagem como um ícone…

É para jogo? Então você precisa urgentemente ler os tutoriais do Ponto V:
http://www.pontov.com.br/site/java/47-javageral
http://www.pontov.com.br/site/java/48-java2d

Dê uma olhada no Arkanoid que implementei também:
http://pontov.com.br/site/component/content/article/55-artigos/133-meus-jogos

Ao final você vai ter uma noção bem clara de como deixar imagens animadas na tela. Dê uma olhada nesse material aqui também:
http://www.cokeandcode.com/index.html?page=tutorials/spaceinvaders101
http://fivedots.coe.psu.ac.th/~ad/jg/

Embora eu certamente ache que vale muito mais à pena você fazer seu jogo em XNA 4.0.

Obrigado gente. Já resolvi o problema. É que quando procuro esses materiais na internet eu acho um monte de implementações diferentes, acaba que confunde. Consertei o codigo agora. Não sei o sentido de criar um JLabel pra essa situação.
O problema agora é diferente.

Eu acho que o código roda direitinho, mas nao estou conseguindo centralizar o sprite dentro do JFrame. Aparece so uma janela em branco. Como contornar isso? Abaixo o codigo:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jogo;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;

/**
 *
 * @author USER
 */
public class Pong extends JFrame{
    BufferedImage imagem;

    public Pong(){
        //criando janela
        super("Pong");
        //tamanho da janela
        setSize(300,300);
        //localizacao
        setLocationRelativeTo(null);
        //operacao ao fechar janela
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //carregando imagem
        File arquivo = new File("imagem.png");
        //carregando imagem no buffer
        try {
            imagem = ImageIO.read(arquivo);
        } catch (IOException ex) {
            System.out.println("Erro ao carregar imagem");
        }
    }

    //classe de desenho
    public void desenho(Graphics g){
        //objeto graphics
        g.drawImage(imagem,0,0,0,0,this);
    }

    public static void main(String[] args) {
        Pong janela = new Pong();
        janela.setVisible(true);
   }
}

Volto a ressaltar: Leia os tutoriais do ponto v. Eles explicam certinho como trabalhar com Graphics, imagem, como fazer a animação do game e usar escrita direta. Assim vc terá um jogo fluído e funcional em pouco tempo.

tbm recomendo o http://pontov.com.br/site/

Já conferi por esses sites ja, ja dei uma lida neles.
Mesmo assim não consegui corrigir o problema. Alguma outra boa alma pode me ajudar?
Uma atualização do codigo:

[code]public class Pong extends JFrame{
BufferedImage imagem;

public Pong(){
    //criando janela
    super("Pong");
    //tamanho da janela
    setSize(300,300);
    //localizacao
    setLocationRelativeTo(null);
    //operacao ao fechar janela
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //carregando imagem
    File arquivo = new File("C:\\Documents and Settings\\USER\\Meus documentos\\NetBeansProjects\\Jogo\\src\\jogo\\imagem.PNG");
    try {
        //carregando imagem no buffer
        imagem = ImageIO.read(arquivo);
    } catch (IOException ex) {
        Logger.getLogger(Pong.class.getName()).log(Level.SEVERE, null, ex);
    }
}

//classe de desenho
public void desenho(Graphics g){
    Graphics2D g2 = (Graphics2D)g.create();
    g2.drawImage(imagem, 100, 100,null);
}

public static void main(String[] args) {
    Pong janela = new Pong();
    janela.setVisible(true);

}
}
[/code]

Sem querer descobri que o meu método desenho() deve se chamar Paint().
Mesmo assim, obrigado pela ajuda!