条件后更改JLabel图标

时间:2014-05-02 06:40:09

标签: java jframe jlabel

如何在一系列条件之后将Null ICON的现有JLabel更改为某个图标......我的逻辑肯定是清楚的,但也许我的sintaxis是问题,请帮助。

    if(n==true){
    trofeo1.setIcon(trofeo.png);
    }

我的JLabel是trofeo1,n只是我逻辑的一个例子..

谢谢!

3 个答案:

答案 0 :(得分:1)

在您的代码中,试试这个:

if (n == true) {
    SwingUtilities.invokeLater(new Runnable() 
    {
        public void run() 
        {
            trofeo1.setIcon(new ImageIcon("trofeo.png"));
        }
    });
}

也许您可以通过执行以下操作来检查图像文件是否正确:

File f = new File("trofeo.png");
if (f.exists()) {
} else {
}

这是因为很多时候问题是图像位置。

然后,你说“也许我的sintaxis是问题...”,你的代码是否编译?您是否在trofeo1.setIcon()行放置了一个断点并检查此行是否已执行?我认为这两个问题的答案是正确的。

此致

答案 1 :(得分:0)

您是否尝试使用repaint()方法刷新JLabel?

 if(n==true){
    trofeo1.setIcon(new ImageIcon("trofeo.png"));
    trofeo1.repaint();
 }

此方法是组件显示的更新。

答案 2 :(得分:0)

对于那些最终来到这里的人,是的,我的链接或照片的路径是错误的,只需通过你的地毯寻找照片位置,复制网址就可以了。这是一个例子......

C:\用户\贝托\文件\的NetBeansProjects \ ProyectoFinal \ SRC \ proyectofinal \ trofeo.png

感谢所有试图提供帮助的人!

最终代码

if(n==true){
trofeo1.setIcon(new ImageIcon("C:\Users\Beto\Documents\NetBeansProjects\ProyectoFinal\src\proyectofinal\trofeo.png"));
trofeo1.repaint();
}