Visualización de imagen en Java

Quiero mostrar una imagen pero no sé qué hacer. Si tengo que instalar algunos archivos de biblioteca o simplemente se puede hacer, no lo sé. En realidad, quiero hacer el procesamiento de la imagen, pero primero tengo que tomar la entrada de la imagen y mostrar la imagen, luego puedo obtener el efecto del procesamiento de la imagen como salida y decidir si (el algoritmo) es correcto o no. He instalado el eclipse solamente. He buscado en Google también, pero todo lo que sugieren no está funcionando bien. O tengo que instalar algo o no. He intentado el siguiente 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);
    }

}

Simplemente muestra una ventana gráfica pero no puede mostrar la imagen "bishnu.jpg"

¿Debo instalar algo en eclipse? Pero creo que no hay que instalar nada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta