Search code examples
javanetbeansjlabelimageicon

retrieving the path of an ImageIcon


I have a jlabel that has already an icon, and i want to change the icon when i exit the mouse from the label, i tried this code, it shows no syntax error

private void LabelMouseExited(java.awt.event.MouseEvent evt) {                                   

if(Label.getIcon().toString().equals("cyberjayacinema/images/Blue%20E1"))
    {
        Label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cyberjayacinema/images/red E1.PNG")));
    }

else
    {
            Label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cyberjayacinema/images/white E1.PNG")));
    }

but only the else case works, although the imageicon is set to the if case, so i guess the error is with retrieving the path of the icon, i assume the way i wrote my getImageIcon was wrong, I wish someone can help me with this. thank you


Solution

  • If you just put a System.out.println(label.getIcon().toString()), you will get something like, this

    file:/C:/NetBeansProjects/StackOverflow/build/classes/resources/stackoverflow5.png
    

    As you can see, that will not match your case.

    You may want to do something like this, to get just the file name

    String iconfilename = label.getIcon().toString();
    String fileName = iconfilename.substring(iconfilename.lastIndexOf("/"  ) + 1);
    System.out.println(fileName);
    
    // output
    stackoverflow5.png
    

    Then just check against the file name.

    if ("stackoverflow5.png".equals(fileName)) {
        do something
    }