を使用ImageIcon
して渡す場合String
、パラメータが を参照することが期待されますFile
。
JavaDocsから
指定されたファイルから ImageIcon を作成します。...指定された文字列は、ファイル名またはファイルパスにすることができます
ファイルと「リソース」は別物です。
代わりに、もっと似たものを使ってみてください...
new ImageIcon(getClass().getResource("res/player.png"));
それがディレクトリres/player.png
の横のjar内にあると仮定します。res
リソースをロードしようとしているクラスとの関係とリソースの場所によっては、使用する必要がある場合があります
new ImageIcon(getClass().getResource("/res/player.png"));
代わりは...
更新しました
EJP が指摘しているように、いくつかの推奨事項では、リソースが見つからない可能性に備えておく必要があります。
URL url = getClass().getResource("/res/player.png");
ImageIcon img = null;
if (url != null) {
img = new ImageIcon(url);
}
// Deal with null result...
ImageIO.read
そして、画像を読むために使用する必要があります。より多くの画像フォーマットをサポートする (そして将来的にはより多くの画像フォーマットをサポートできる) という事実とは別に、返す前に画像をロードし、画像をIOException
読み取れない場合は ...をスローします。
URL url = getClass().getResource("/res/player.png");
ImageIcon icon = null;
if (url != null) {
try {
BufferedImage img = ImageIO.read(url);
icon = new ImageIcon(img);
} catch (IOException exp) {
// handle the exception...
exp.printStackTrace();
}
}
// Deal with null result...