我的程序中有5张图像。该程序将被编译为单个.JAR文件,因此需要从中读取它们。但是,当我打电话

images = new ArrayPP<ImageIcon>(
          new ImageIcon(getClass().getResource("/bha/resources/Portal Test Chamber 17 - Part 1.png")),
          new ImageIcon(getClass().getResource("/bha/resources/Portal Test Chamber 17 - Part 2.png")),
          new ImageIcon(getClass().getResource("/bha/resources/Portal Test Chamber 17 - Part 3.png")),
          new ImageIcon(getClass().getResource("/bha/resources/revit logo - glass.png")),
          new ImageIcon(getClass().getResource("/bha/resources/The All-Knowing Octopus.png")));


它适用于JMenuItem中的图标(例如,jMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bha/resources/icon.png")));将始终有效)以及在IDE中进行测试时,但是在编译为null文件时返回为JAR

最佳答案

鉴于getResource返回一个URL,我猜测它不喜欢空格。作为测试,我会尝试做

new ImageIcon(getClass().getResource(URLEncoder.encode("/bha/resources/Portal Test Chamber 17 - Part 1.png", "UTF-8"))),

关于java - 访问.JAR文件中的图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5698373/

10-10 19:54