[英]create an hotspot and set an image without background (like earth icon) to my panel
[英]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
有两个很好的答案。 您还应该查看添加标签的容器的布局。 此示例使用FlowLayout
, JPanel
的隐式默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.