我如何使用JLabels?

时间:2011-04-08 20:11:15

标签: java image jlabel

当我尝试创建JLabel时,它会完美地显示文本并在容器中正确放置,但如果我尝试将图像添加到标签中,则不会显示任何内容。

ImageIcon icon = new ImageIcon("../media/link_walk.png", "hh");
JLabel j = new JLabel("hello");
j.setIcon(icon);
p.add(j);

2 个答案:

答案 0 :(得分:3)

如果您的应用。在Jar文件中,图像是应用程序资源,它也将位于Jar文件中。

接受ImageIcon的{​​{1}}构造函数假设String表示文件路径/名称。无法在Jar中的资源上建立String对象。对于Jar中的资源,有必要通过File访问它们。

要获得Jar中的URL内容,请使用类似..

的内容
URL

然后使用接受URL urlToImage = this.getClass().getResource("/media/link_walk.png"); // Check the URL! System.out.println("urlToImage is " + urlToImage); 的{​​{1}}构造函数。

答案 1 :(得分:1)

默认情况下,JLabel不是不透明的,因此除非通过setOpaque(true)使它们变得不透明,否则不会看到背景颜色变化。此外,JLabel的首选大小取决于它所拥有的文本。