我有一个已经有图标的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 的方式错了, 我希望有人可以帮助我。 谢谢
答案 0 :(得分:1)
如果你只是放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
}
答案 1 :(得分:0)
如果您尝试访问项目文件夹中的图像,这可能对您有所帮助
Lable test;
java.net.URL url = ClassLoader.getSystemResource("res/image.png");
test.setIconImage(Toolkit.getDefaultToolkit().getImage(url));