I've started Java a week ago, and now I would like to insert an image into my window. Whatever I try I keep having this in Eclipse: javax.imageio.IIOException: Can't read input file!
package graphics; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import src.Common; public class Window extends JFrame { public class Panel extends JPanel { public void paintComponent(Graphics g) { Image img; try { img = ImageIO.read(new File("/logo.jpg")); g.drawImage(img, 0, 0, this); } catch (IOException e) { e.printStackTrace(); } } } public Window(String title, int width, int height) { this.setTitle(title); this.setSize(width, height); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setContentPane(new Panel()); this.setVisible(true); }
}
I think the code is pretty self-explaining. I tried to solve the problem with this, this, and that .
What I'm trying to do is a desktop program, and my sources are stored like that : training/src/graphics/Window training/src/src/main
I did put the image I want to read in every folder, and still getting the issue :/
What did I do wrong?
EDIT Finally solved, here the answer
nIcE cOw gave me the link that helped. So I did put my images into a folder, and change the way to access to them, as described in the link.
getClass().getResource("/images/yourImageName.extension");