Exibindo imagem em Java

Quero exibir uma imagem, mas não sei o que fazer. Se eu tenho que instalar alguns arquivos de biblioteca ou simplesmente pode ser feito eu não sei. Na verdade eu quero fazer processamento de imagem, mas primeiro eu tenho que pegar a imagem de entrada e exibir a imagem, então eu posso obter o efeito do processamento de imagem como a saída e decidir se ele (algoritmo) está correto ou não. Eu instalei o eclipse apenas. Eu procurei no Google também, mas o que eles sugerem não está funcionando bem. Ou eu tenho que instalar algo ou não. Eu tentei o seguinte código:

import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JComponent;
import javax.swing.JFrame;

public class ImageTest {
    public static void main(String[] args){
        EventQueue.invokeLater(new Runnable()
        {
            public void run(){
                ImageFrame frame = new ImageFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);


            }
        }
        );
    }
}

class ImageFrame extends JFrame{

    public ImageFrame(){
        setTitle("ImageTest");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

        ImageComponent component = new ImageComponent();
        add(component);

    }

    public static final int DEFAULT_WIDTH = 300;
    public static final int DEFAULT_HEIGHT = 200;
}


class ImageComponent extends JComponent{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Image image;
    public ImageComponent(){
        try{
            File image2 = new File("bishnu.jpg");
            image = ImageIO.read(image2);

        }
        catch (IOException e){
            e.printStackTrace();
        }
    }
    public void paintComponent (Graphics g){
        if(image == null) return;
        int imageWidth = image.getWidth(this);
        int imageHeight = image.getHeight(this);

        g.drawImage(image, 50, 50, this);

        for (int i = 0; i*imageWidth <= getWidth(); i++)
            for(int j = 0; j*imageHeight <= getHeight();j++)
                if(i+j>0) g.copyArea(0, 0, imageWidth, imageHeight, i*imageWidth, j*imageHeight);
    }

}

Ele simplesmente mostra uma janela gráfica, mas não mostra a imagem "bishnu.jpg"

Devo instalar alguma coisa no eclipse? Mas acho que nada precisa instalar.

questionAnswers(3)

yourAnswerToTheQuestion