Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Java and missing images

  1. Apr 9, 2005 #1
    Hi, I'm working through the "Building an Application: Part 2: Introduction to Inheritance, Panels, and Layouts" on java.sun.com and the code I've written compiles fine, but the images that are supposed to appear in the JPanel aren't there.

    Code (Text):
    jl = new JLabel("Java Technology Dive Log", new ImageIcon("images/diveflag.gif"), JLabel.CENTER);

    Code (Text):
    diver = new JLabel("", new ImageIcon("images/diver.jpg"), JLabel.CENTER);
    are where images are used.

    The image files do exist. They're in a folder called "images", which itself is in a folder named "divelog". The whole code for the file is here, although obviously this class is used in another.

    If anyone can help, thanks.
    Last edited: Apr 9, 2005
  2. jcsd
  3. Apr 9, 2005 #2
    Did you add those 3 lines to Welcome.java?

    Code (Text):

    add(jl, BorderLayout.NORTH);
    add(ta, BorderLayout.CENTER);
    add(diver, BorderLayout.SOUTH);
  4. Apr 9, 2005 #3
    Yep, I did.
  5. Apr 9, 2005 #4
    Do you have your images folder and java .jar file in the same directory?
  6. Apr 10, 2005 #5
    What .jar file?
  7. Apr 10, 2005 #6
    I would use an absolute path to double check that is not a working directory problem. That would at least eliminate one possibility.
  8. Apr 10, 2005 #7
    It works with an absolute path, so what else could be the problem?
  9. Apr 10, 2005 #8
    Well there you go. Your working directory is not what you think it is !
  10. Apr 10, 2005 #9
    Why's it not the current directory?!
  11. Apr 10, 2005 #10
    I believe its usually the directory in which the class file is located, though I could be wrong. Check the documentation on Sun's site: http://java.sun.com.
  12. Apr 10, 2005 #11
    Will do, thanks :smile:.
  13. Apr 10, 2005 #12
    Actually I think its the directory in which the interpreter is run. How are you running the interpreter?
  14. Apr 10, 2005 #13
    I'm using BlueJ. I'll try from the command line and see if that makes any difference.

    Edit: I can't run from the command line. I'm getting:

    Exception in thread "main" java.lang.NoClassDefFoundError: DiveLog (wrong name:
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)

    when I try "java DiveLog". The class name is DiveLog, so I don't know what the problem is. It works in BlueJ though :confused:.
    Last edited: Apr 10, 2005
  15. Aug 21, 2008 #14
    New to the forum here.

    I'm having the same problem with the images not being displayed.

    Has anyone figured out the cure?

  16. Aug 22, 2008 #15
    The interpreter's location is irrelevant because you can have work-related material in other directories.

    A standard IDE for Java such as Eclipse can obviously be in a different location (such as c:\eclipse) and compile things fine from other directories because the compiler KNOWS where to find the standard libraries.

    The thing with images is that they have to be in the /same/ folder as your classes, otherwise you have to explicitly define their entire paths.

    If it's in a folder, then the folder has to be in the same folder as your main/test class.

    If your main class as well as other classes are in lets say, C:\class

    then the images should be in C:\class\images\<imageFile>
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook