Java 检索图像图标的路径
我有一个已经有图标的jlabel,当我从标签中退出鼠标时,我想更改图标,我尝试了这段代码,它没有显示语法错误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
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
}
你能给我解释一下在我的案子里怎么用这个吗?因为我还是初学者,而且我还没有真正理解代码。