1
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画像を適切にロードしてJLabelやアイコンなどを作成できるかどうかを確認していますが、次のエラーが発生します。

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)  

なぜそのエラーメッセージが表示されるのですか?

4

1 に答える 1

4

で試してみてください

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

クラスパスを検索しているので、srcディレクトリはもうありません

于 2012-12-24T17:52:49.653 に答える