如何在项目文件夹的jlabel上设置图像?

时间:2014-04-08 05:17:27

标签: java swing jlabel embedded-resource imageicon

我正在尝试制作Java桌面应用程序。

我想在JLabel上设置图片。

我正在使用NetBeans。

从我的项目文件夹,我的目录结构是:

F:/>MARKET
    |
    |___src
    |
    |___lib
    |
    |___src
    |      |
    |      |__defaultpackage
    |                       |
    |                       demo.java
    |__images
            |
            |
            Logo1.png

我使用了以下代码:

jLabel4 = new JLabel(new ImageIcon("images/Logo1.png"));

它不起作用,我怎样才能获得输出?

3 个答案:

答案 0 :(得分:4)

如果您想要Jar中包含的图像,则需要将images文件夹移动到src目录中。

这将要求您使用更像......

的东西
jLabel4 = new JLabel(new ImageIcon(getClass().getResource("/images/Logo1.png")));

加载图片。

如果您希望图像保留在程序Jars的外部(并保持对文件系统开放),那么您需要确保程序的执行上下文位于项目文件夹的上下文中(在同一级别)作为srcimages目录。)

这可以通过项目属性 - >完成。运行属性。默认情况下,运行时,程序将从正在运行的项目文件夹的上下文中执行。

Properties

如果您想使用外部资源,可以做两件事来检查它们......

一,使用与您要加载的外部资源相同的路径创建File并检查它是否存在...

 if (new File("images/Logo1.png").exists()) {...

或者,如果您似乎无法使其工作,请使用...

检查当前的运行环境
System.out.println(new File(".").getCanonicalPath());

这将告诉您当前的工作目录(请注意这将抛出IOException)。

您还可以使用系统属性user.dir

System.out.println(System.getProperty("user.dir"));

答案 1 :(得分:0)

您是否在构建路径下添加图像文件夹?

如果您使用eclipse,请添加此文件夹以构建路径。 enter image description here

然后你可以在你的代码中找到这张图片:

File file = new File("./images/test.png");
System.out.println(file.exists());

答案 2 :(得分:0)

通过创建适当的对象来尝试这一点,它可以为您提供清晰的处理图像,您可以稍后缩短项目。首先尝试使用C:/

JPanel panel = new JPanel(); 
ImageIcon icon = new ImageIcon("C:/Logo1.png"); 
JLabel label = new JLabel(); 
label.setIcon(icon); 
panel.add(label);