title: Displaying Image in Java
body: <p>I want to display an image but don't know what to do. Whether I have to install some library files or simply it can be done I don't know. Actually I want to do image processing, but first I have to take the image input and display image then I can get the effect of image processing as the output and decide whether it(algorithm) is correct or not. I have installed the eclipse only. I have searched in Google also but whatever they suggest is not working well. Either I have to install something or not.</p>
  
  <p>I have tried the following code:</p>
  
  <pre><code>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);
          getContentPane().validate();
          getContentPane().repaint();
      }
  
      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 &lt;= getWidth(); i++)
              for(int j = 0; j*imageHeight &lt;= getHeight();j++)
                  if(i+j&gt;0) g.copyArea(0, 0, imageWidth, imageHeight, i*imageWidth, j*imageHeight);
      }
  }
  </code></pre>
  
  <p>It simply shows a graphical window but can't show the image "bishnu.jpg"</p>
  
  <p>Should I install anything in eclipse? But I think nothing needs to install.</p>