JLabel中的图标

时间:2013-12-19 12:38:46

标签: java swing jlabel imageicon

我使用了以下代码:

JLabel jLabel = new JLabel(new ImageIcon(someImage));

我不明白..有时我运行代码时会出现图像,有时候不会...我并不总是得到相同的输出。任何人都可以解释为什么会发生这种情况?!

2 个答案:

答案 0 :(得分:2)

如果没有更多的上下文代码,很难确定,但每当我听到有时的Swing问题时,我倾向于怀疑线程问题;如果你的GUI是一个没有在Event Dispatch Thread上构建的对话框,那么这种随机性很常见。如果您不确定线程​​,请将其放在执行此代码的方法的顶部:

System.out.println(String.format("This code %s running on the Event Dispatch Thread.", (javax.swing.SwingUtilities.isEventDispatchThread() ? "IS" : "IS NOT"));

看看你得到了什么。

答案 1 :(得分:0)

以下是JLabelIcon的简单示例,请检查:

import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Example extends JFrame {

    public Example() {
        URL resource = getClass().getResource("image.png");
        ImageIcon icon = new ImageIcon(resource);
        JLabel l = new JLabel(icon);
        add(l);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String... s){
        new Example();
    }

}

image.png是我的图片,与该课程位于同一文件夹中。