use*_*824 3 java swing jlabel embedded-resource imageicon
我正在尝试制作一个 Java 桌面应用程序。
我想在 上设置图像JLabel。
我正在使用 NetBeans。
从我的项目文件夹中,我的目录结构是:
F:/>MARKET
|
|___src
|
|___lib
|
|___src
| |
| |__defaultpackage
| |
| demo.java
|__images
|
|
Logo1.png
Run Code Online (Sandbox Code Playgroud)
我使用了以下代码:
jLabel4 = new JLabel(new ImageIcon("images/Logo1.png"));
Run Code Online (Sandbox Code Playgroud)
它不起作用,我怎样才能得到我的输出?
如果您希望将图像包含在 Jar 中,则需要将该images文件夹移动到该src目录中。
然后,这将要求您使用更像......
jLabel4 = new JLabel(new ImageIcon(getClass().getResource("/images/Logo1.png")));
Run Code Online (Sandbox Code Playgroud)
到加载图像。
如果您希望图像保留在程序 Jars 外部(并对文件系统保持打开状态),那么您需要确保程序的执行上下文位于项目文件夹的上下文中(与项目文件夹处于同一级别src)images目录)。
这可以通过项目属性 -> 运行属性来完成。默认情况下,运行时,程序将从正在运行的项目文件夹的上下文中执行。

如果您想使用外部资源,您可以做两件事来检查它们......
一,使用与要加载的外部资源相同的路径创建一个File并检查它是否存在......
if (new File("images/Logo1.png").exists()) {...
Run Code Online (Sandbox Code Playgroud)
或者,如果您似乎无法让它工作,请检查您当前的运行上下文...
System.out.println(new File(".").getCanonicalPath());
Run Code Online (Sandbox Code Playgroud)
这将告诉您当前的工作目录(注意这会抛出一个IOException)。
您还可以使用系统属性user.dir
System.out.println(System.getProperty("user.dir"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8978 次 |
| 最近记录: |