title: Adding image to JPanel in Eclipse
body: <p>I have this in my main class:</p>
  
  <pre><code>panel.setBackground(Color.green);
  ImagePanel background = new ImagePanel("Images/background.png");
  panel.add(background);
  </code></pre>
  
  <p>But when I run it I only see the green background and get the exception:  </p>
  
  <blockquote>
    <p>"javax.imageio.IIOException: Can't read input file!"</p>
  </blockquote>
  
  <p>This is the ImagePanel class:</p>
  
  <pre><code>public class ImagePanel extends JPanel {
  private BufferedImage img;
  
  public ImagePanel(String path) {
      // load the background image
      try {
          img = ImageIO.read(new File(path));
      } catch(IOException e) {
          e.printStackTrace();
      }
  }
  
  @Override
  protected void paintComponent(Graphics g) {
      super.paintComponent(g);
      // paint the background image and scale it to fill the entire space
      g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
  }
  }
  </code></pre>
  
  <p>I'm using Eclipse and this is where my image is: src/Images/background.png</p>
  
  <hr>
  
  <p>Ok, now i have:</p>
  
  <pre><code>ImagePanel background = new ImagePanel("src/Images/background.png");
  </code></pre>
  
  <p>and it don't show the exception anymore, but i still don't see the image, only the green background...</p>
  
  <p>Here is the full method:</p>
  
  <pre><code> private void createAndShowGUI() {
  
          frame = new JFrame("Java 2048 By Xandru");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setResizable(false);
          frame.setLayout(null);
  
          panel = new JPanel();
          panel.setLayout(null);
          panel.setBounds(0, 0, HEIGHT, WIDTH);
          panel.setBackground(Color.green);
          frame.add(panel);
  
          //Add the background
          ImagePanel background = new ImagePanel("src/Images/background.png");
          panel.add(background);
  
          //Create the main Frame
          frame.pack();
  
          //Set dimensions
          frame.setSize(WIDTH, HEIGHT);
  
          //Center it
          Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
          int x = (int) ((screen.getWidth() - frame.getWidth()) /2);
          int y = (int) ((screen.getHeight() - frame.getHeight()) /2);
          frame.setLocation(x, y); 
  
          //Set visible
          frame.setVisible(true);
      }
  </code></pre>