Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检索图像图标的路径_Java_Netbeans_Jlabel_Imageicon - Fatal编程技术网

Java 检索图像图标的路径

Java 检索图像图标的路径,java,netbeans,jlabel,imageicon,Java,Netbeans,Jlabel,Imageicon,我有一个已经有图标的jlabel,当我从标签中退出鼠标时,我想更改图标,我尝试了这段代码,它没有显示语法错误 private void LabelMouseExited(java.awt.event.MouseEvent evt) { if(Label.getIcon().toString().equals("cyberjayacinema/images/Blue%20E1")) { Label.se

我有一个已经有图标的jlabel,当我从标签中退出鼠标时,我想更改图标,我尝试了这段代码,它没有显示语法错误

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")));
    }
但是只有else案例有效,尽管imageicon设置为if案例,因此我猜错误在于检索图标路径,我假设我写getImageIcon的方式是错误的, 我希望有人能帮我。
谢谢

如果您试图从项目文件夹访问图像,这可能会对您有所帮助

 Lable test;
java.net.URL url = ClassLoader.getSystemResource("res/image.png");
test.setIconImage(Toolkit.getDefaultToolkit().getImage(url));

如果您只是放置一个
System.out.println(label.getIcon().toString())
,您将得到如下结果

file:/C:/NetBeansProjects/StackOverflow/build/classes/resources/stackoverflow5.png
如你所见,这与你的情况不符

您可能需要这样做,只获取文件名

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

// output
stackoverflow5.png
然后检查文件名

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

你能给我解释一下在我的案子里怎么用这个吗?因为我还是初学者,而且我还没有真正理解代码。