如何使用getIcon函数?(Java/NETBeans IDE)

如何使用getIcon函数?(Java/NETBeans IDE),java,icons,jlabel,Java,Icons,Jlabel,我创建了一个表单应用程序,其中的图像使用标签中的图标属性显示 jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/replacment.jpg"))); // NOI18N getContentPane().add(jLabel2); jLabel2.setBounds(640, 220, 68, 30); 主要的想法是当用户按下某个按钮时,图像会像这样消失 priv

我创建了一个表单应用程序,其中的图像使用标签中的图标属性显示

jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/replacment.jpg"))); // NOI18N
        getContentPane().add(jLabel2);
        jLabel2.setBounds(640, 220, 68, 30);
主要的想法是当用户按下某个按钮时,图像会像这样消失

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("")));
    }     
它成功地工作了,例如,我尝试使用getIcon函数根据标签中显示的图像更改程序代码

if(jLabel2.getIcon()==""){
  do something 
}   
但是我得到了一个错误:不可比较的类型Java.swing.icon和Java.lang.string


那么,有没有一种方法可以根据标签显示的图标来执行if语句呢

要删除图标时,请使用
setIcon(null)
然后在if语句中检查图标是否为null:

if (jLabel2.getIcon() == null)

将字符串与图标进行比较是错误的,因为错误表明您不能这样做。

当您要删除图标时,请使用
setIcon(null)
然后在if语句中检查图标是否为null:

if (jLabel2.getIcon() == null)

将字符串与图标进行比较是错误的,因为错误表明您不能这样做。

谢谢,这确实有效。但是有没有一种方法可以根据两个单独的图标来执行一个语句呢。我们有A.jpg和B.jpg,我的意思是,如果图标不是空的,但实际上只是另一个图像,我可以使用什么方法来实现相同的目标图像图标的toString实现返回描述,如果它的集合,您可以将描述与文件名一起设置并进行比较,或者扩展图像图标并覆盖toString以便进行比较。另一个选项是使用如图所示的
JToggleButton
。谢谢,这确实有效。但是有没有一种方法可以根据两个单独的图标来执行一个语句呢。我们有A.jpg和B.jpg,我的意思是,如果图标不是空的,但实际上只是另一个图像,我可以使用什么方法来实现相同的目标图像图标的toString实现返回描述,如果它的集合,您可以将描述与文件名一起设置并进行比较,或者扩展图像图标并覆盖toString以便进行比较。另一个选项是使用
JToggleButton
,如图所示。