繁体   English   中英

在面板中设置图像图标

[英]Set Image Icon in Panel

我想在面板中设置一个图像图标。我想这样做;

 JLabel label = new JLabel(new ImageIcon("logo.jpg"))
 panelHeader.add(label);
 add(panelHeader);

但图像没有显示。任何暗示我做错了什么?

new ImageIcon()构造函数只是创建一个未初始化的图像图标。 您必须调用createImageIcon()方法,该方法返回ImageIcon源以分配给您也创建的ImageIcon对象。

ImageIcon icon = createImageIcon("logo.jpg", "my logo");
JLabel label = new JLabel(icon);
new ImageIcon("logo.jpg")

ImageIcon基于String的构造函数假定字符串表示文件路径。 由于这是一个添加到面板的图像,因此在运行时,它可能位于Jar内部,不能作为File访问。 对于嵌入式应用程序资源,唯一可行的访问是通过URL URL可能来自以下内容:

URL logoUrl = this.getClass().getResource("/logo.jpg");

注意领先/ 这告诉JRE在相对于类路径的根的路径上搜索资源,而不是相对于加载它的类的包的路径。

您在创建ImageIcon有两个很好的答案。 您还应该查看添加标签的容器的布局。 示例使用FlowLayoutJPanel的隐式默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM