如何解决无法使用 createIcon() 方法获取图像的路径url
因此,当我尝试使用我在按钮类中声明的 createIcon()
方法将图标放到我的按钮上时,它工作正常。
但是,
当我尝试将方法放在另一个类中(比如 Utils.java
),这样我就不需要在对象需要图标的类中重新声明方法时,我收到此消息。
无法加载图片:/images/Save16.gif
线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException:无法调用“java.net.URL.toExternalForm()”,因为“location”为空
*如果需要,还有更多消息
这是按钮的类,里面有 createIcon() 方法
public class Toolbar extends JToolBar implements ActionListener{
private final JButton saveBtn;
public Toolbar() {
saveBtn = new JButton();
saveBtn.setIcon(createIcon("/images/Save16.gif"));
saveBtn.setToolTipText("Save");
saveBtn.addActionListener(this);
add(saveBtn);
}
private ImageIcon createIcon(String path) {
URL url = getClass().getResource(path);
if(url == null) {
System.err.println("Unable to load image: " + path);
}
ImageIcon icon = new ImageIcon(url);
return icon;
}
}
这是我试图在另一个类中声明的 createIcon() 方法
public class Utils {
public static ImageIcon createIcon(String path) {
URL url = System.class.getResource(path);
if(url == null) {
System.err.println("Unable to load image: " + path);
}
ImageIcon icon = new ImageIcon(url);
return icon;
}
}
将 setIcon()
方法更改为:
saveBtn.setIcon(Utils.createIcon("/images/Save16.gif"));
从我在消息中分析的问题来看,问题可能是 url
无法从我的按钮类中获取 path
,我已经尝试了几种替代方法,但仍然无法正常工作.我应该如何正确设置?谢谢
解决方法
这有效:
URL url = getClass().getResource(path);
因为您获得了 Toolbar 类的类,这是所有其他类/文件所在的位置。
这不起作用:
URL url = System.class.getResource(path);
因为在 JDK 中找到了“System”类,而不是您的应用程序类。
我猜你可以试试:
URL url = Utils.class.getResource(path);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。