【问题标题】:How to set image on jlabel from project folder?如何在项目文件夹中的 jlabel 上设置图像?
【发布时间】:2014-05-20 14:56:39
【问题描述】:

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

我想在JLabel 上设置一个图像。

我正在使用 NetBeans。

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

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

我使用了以下代码:

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

它不工作,我怎样才能得到我的输出?

【问题讨论】:

  • 可能你写的是Logo1.png而不是logo1.png,检查你的工作区
  • @Sarz 感谢您的编辑,但我仍然坚持我的问​​题
  • 有两个src目录有什么原因吗?
  • @MadProgramer 在 netbeans 中自动创建
  • 为什么你的图中有两个?

标签: java swing jlabel embedded-resource imageicon


【解决方案1】:

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

如果您使用 eclipse,请将此文件夹添加到构建路径。

那么你可以在你的代码中找到这张图片:

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

【讨论】:

  • 是添加外部jar文件,不是加载图片@zhaorong
  • @Sarz,谢谢,我明白了,不过,如果不想移动src下的image文件夹,添加文件夹到build path可以解决这个问题,对吗?
【解决方案2】:

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

这将要求您使用更像...的东西

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

到加载图像。

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

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

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

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

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

或者,如果您似乎无法让它工作,请检查您当前的运行上下文...

System.out.println(new File(".").getCanonicalPath());

这会告诉你当前的工作目录(注意这会抛出一个IOException)。

也可以使用系统属性user.dir

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 1970-01-01
      • 2014-05-08
      • 2023-03-17
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多