我使用了以下代码:
JLabel jLabel = new JLabel(new ImageIcon(someImage));
我不明白..有时我运行代码时会出现图像,有时候不会...我并不总是得到相同的输出。任何人都可以解释为什么会发生这种情况?!
答案 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)
以下是JLabel
和Icon
的简单示例,请检查:
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
是我的图片,与该课程位于同一文件夹中。