编程语言
首页 > 编程语言> > java-将图像图标添加到按钮/标签中

java-将图像图标添加到按钮/标签中

作者:互联网

我知道这个问题已经发布,但是我已经尝试了所有发现的内容,但没有任何效果.

我有一个Maven项目,我想在按钮上使用图像.我将图像放在src / main / res文件夹中.在安装Maven clean / Maven之后,我的所有映像都在target / classes文件夹中找到.我希望图像位于.jar文件中,以便在使用它时无需创建单独的文件夹.

这是我尝试用来为按钮上的新图标加载图像的代码:

JButton button = new JButton();
      try {
        Image img = ImageIO.read(getClass().getResource("cross_icon.jpg"));
        button.setIcon(new ImageIcon(img));
      } catch (Exception ex) {
        System.out.println(ex);
      }
       subsPanel.add(button);

但我得到一个输入== null.我尝试使用main / res / cross_icon.jpg或res / cross_icon.jpg,但没有任何效果.

解决方法:

通过Class.getResource加载资源时,如果它是绝对路径,则必须在资源路径的开头放置/.

Image img = ImageIO.read(getClass().getResource("/cross_icon.jpg"));

参见Class.getResource的Javadoc

Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:

  • If the name begins with a ‘/’ (‘\u002f’), then the absolute name of the >resource is the portion of the name following the ‘/’.
  • Otherwise, the absolute name is of the following form:

    06001

    Where the modified_package_name is the package name of this object with ‘/’ >substituted for ‘.’ (‘\u002e’).

聚苯乙烯

如果使用ClassLoader.getResource,则资源名称始终被解释为绝对路径.例如.

Image img = ImageIO.read(getClass()
                         .getClassLoader()
                         .getResource("cross_icon.jpg"));

标签:maven,icons,swing,embedded-resource,java
来源: https://codeday.me/bug/20191111/2018298.html