生成为.jar java后,JPanel不显示

时间:2017-04-02 00:30:56

标签: java

我写的程序有问题。问题是,当我从编程环境编译并执行它时,一切正常并且显示正常,但是在我生成一个.jar之后,框架本身就出现了,但是在JTabbedPane内部带有图标的jpanel却没有吨。我在jpanel中的一些图标中使用了图像,在其他jpanel中我没有使用图标,它在创建.jar后工作。我认为问题是从.jar所在的文件夹中获取图标,但我不知道如何更好地做到这一点。

已经尝试过:

    ImageIcon icon1 = new ImageIcon(getClass().getResource("refresh.png"));
  JLabel label1 = new JLabel(icon1);

  URL url = home.class.getResource("refresh.png");
  ImageIcon  icon1 = new ImageIcon(url);
  JLabel label1 = new JLabel(icon1);

但是.jar被创建后似乎没有任何效果

在编程环境中: enter image description here

生成.jar: enter image description here

我到处搜索,但我没有找到答案。如果您需要更多代码,请告诉我。

1 个答案:

答案 0 :(得分:0)

尝试从资源文件夹中读取文件,如下所示:

    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource("refresh.png").getFile());
    ImageIcon icon = new ImageIcon(file.toURI().toURL());

这将从类路径加载文件。为此,您需要将文件复制到标准的“resources”目录中,如this example所示。是的,您确实希望使用此standard maven convention来存储应用程序所需的文件。它简化了将项目从开发转移到测试或生产等其他环境的过程。