【问题标题】:Java does not load embedded ImagesJava 不加载嵌入的图像
【发布时间】:2012-12-25 01:52:49
【问题描述】:
package common;

import java.awt.image.BufferedImage;
import java.io.InputStream;

import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ResourcesToAccess {
    public static Icon sharedAbstractDownIcon;
    public static Icon sharedAbstractPlayIcon;
    public static Icon sharedAbstractPauseIcon;
    public static Icon sharedAbstractBlackCursor;
    public static Icon sharedAbstractWhiteCursor;
    public ResourcesToAccess(){
        InputStream is = this.getClass().getClassLoader().getResourceAsStream("/src/images/blackCursor.png");
        try{
            BufferedImage bi = ImageIO.read(is);
            sharedAbstractBlackCursor = (Icon) new ImageIcon(bi);
            new JFrame().add(new JLabel(sharedAbstractBlackCursor)).setVisible(true);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        new ResourcesToAccess();
    }
}

我正在使用此代码查看是否可以正确加载 PNG 图像以创建 JLabels、图标等,但我收到以下错误:

java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)
    at common.ResourcesToAccess.<init>(ResourcesToAccess.java:21)
    at common.ResourcesToAccess.main(ResourcesToAccess.java:29)  

为什么我会看到该错误消息?

【问题讨论】:

    标签: java embedded-resource


    【解决方案1】:

    试试

    this.getClass().getClassLoader().getResourceAsStream("images/blackCursor.png")
    

    它正在你的类路径中查找,所以那里不再有 src 目录

    【讨论】:

    猜你喜欢
    • 2018-04-20
    • 2011-08-13
    • 2015-07-28
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多