java - 无法使用 java swing 从类路径渲染图像?
问题描述
这是我的代码&如果我运行它,它会打印出来
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1348)
at com.auroraclient.launcher.AuroraLauncher.init(AuroraLauncher.java:28)
at Main.main(Main.java:7)
我 100% 确定包和文件在那里,但 java 似乎找错了地方。有谁知道这里发生了什么?
public enum AuroraLauncher {
instance;
public JFrame frame;
public AuroraPanel panel;
public void init(){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setTitle("Aurora Launcher rel- 91021");
frame.setBounds(320, 180, 1280, 720);
frame.setUndecorated(true);
frame.setResizable(false);
panel = new AuroraPanel(frame);
panel.setBounds(0, 0, 1280, 720);
panel.setVisible(true);
frame.add(panel);
try {
JLabel label = new JLabel(new ImageIcon(ImageIO.read(this.getClass().getResourceAsStream("resources/wat.png"))));
label.setVisible(true);
label.setBounds(0, 0, 1280, 720);
frame.add(label);
} catch (IOException e) {
e.printStackTrace();
}
/**
* Layer top buttons
*/
frame.setVisible(true);
}
}
解决方案
如果您使用的是 Maven(我猜我使用的是 /resources 一词),那么 /resources 文件夹中的所有内容通常都会映射到类路径的根目录。
所以你可以试试这个:
JLabel label = new JLabel(new ImageIcon(ImageIO.read(this.getClass().getResourceAsStream("wat.png"))));
推荐阅读
- django - 如果页面加载后数据发生变化,通知用户
- python - 是否有推荐的方法来模拟 AWS Batch 以在 Metaflow 中进行集成测试?
- sharepoint - 在另一个 Sharepoint 文件夹中保持文件更新
- html - 如何使用 Rails 从字符串渲染 HTML 链接?
- wordpress - Wordpress 菜单项显示为 ID 而不是 url slug
- angular - Angular FormsArray中的打字稿过滤器项目
- php - 无法在 CodeIgniter 4 中发布来自外部源的值
- python - 如何在不使用 django 表单的情况下存储图像
- php - 编码文件的格式主要 ID 为 65540,而优化器预计为 2
- python - 如何将按钮彼此相邻放置?