如何在eclipse中将图像添加到项目目录中?

时间:2012-07-09 14:06:52

标签: java eclipse image jar directory

我有一个程序运行并且不会在eclipse中抛出运行时错误,该错误应该在程序结束时将图像设置为JButton作为结果,但图像永远不会放在按钮上。该程序在DrJava中运行良好但我转移到eclipse以生成jar文件。

我在另一个问题中看到,有人有类似的问题,说图像应该放在项目目录而不是src目录,但它没有解释如何实际修复问题...我是新的日食,所以如果有人可以帮助我感谢你们。

这里是如何在我的代码中设置图像:

public void tempSelection70 (int fRate, int wbTemp, int rcTons, int a, int r)
  {
    for (int model = 0; model < 7; model++)
    {
      MyArray y = new MyArray(tons70FCharts[model], "t");
      int[][] x = y.getArray();
      int t = x[a][r];
      if (rcTons == t)
      {
        tableButton = new JButton(new ImageIcon(tablesFor70[model], tablesFor70[model]));
        break;
      }
      else 
      {
        tableButton = new JButton(new ImageIcon("CANNOT_FIND_MODEL.GIF", "SCROLL"));
      }
    }
    for (int model = 0; model < 7; model++)
    {
      MyArray y = new MyArray(flow70FCharts[model], "f");
      int[][] x = y.getArray();
      int t = x[a][r];
      if (fRate == t)
      {
        tableButton = new JButton(new ImageIcon(tablesFor70[model], tablesFor70[model]));
        break;
      }
      else 
      {
        tableButton = new JButton(new ImageIcon("CANNOT_FIND_MODEL.GIF", "SCROLL"));
      }
    }
  }

1 个答案:

答案 0 :(得分:0)

您正在传递文件名作为参数。我想这个文件名是一个相对文件名。因此,该文件与IDE启动java命令以执行应用程序的目录相关:工作目录。

此目录可以从Eclipse中的运行配置更改,位于“Arguments”选项卡下。但这可能不是你想要的。图标应该与您的应用程序捆绑在一起,并加载类加载器。将它们放在源文件夹中的包下。 Eclipse会将它们与已编译的类一起复制到输出目录。如果你为你的应用程序生成一个jhar,它们将与你的类一起捆绑在jar中。完成此操作后,您只需使用构造函数将URL作为参数,然后传递

SomeClassOfYourApp.getResource("/the/package/of/the/image.png")

作为此URL参数。

这样您就可以轻松地将图标与应用程序捆绑在一起,并且无论工作目录是什么,都会加载图标。