質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.04%

javaで画像ファイルをウィンドウに読み込ませられるようにしたいです

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,364
退会済みユーザー

退会済みユーザー

前提・実現したいこと

ここに質問したいことを詳細に書いてください
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
javaで画像をファイルをimageIOクラスを使って読み込めるようになるシステムを作っています。
その途中の画像ファイルを書くところで実行すると以下のエラーが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(ImageIO.java:1348)
    at jp.ohtsuki.minigame.Game.<init>(Game.java:40)
    at jp.ohtsuki.minigame.Game.main(Game.java:56)

###該当のソースコード

ここに言語を入力
ここにご自身が実行したソースコードを書いてください
java

試したこと

課題に対してアプローチしたことを記載してください
画像ファイルの名称が間違っていないか確認した。

補足情報(言語/FW/ツール等のバージョンなど)

特になし
ここに言語を入力
```
コード
package jp.ohtsuki.minigame;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class Game {
JFrame frame1;
BufferStrategy bstrategy;
int cy = 200;
boolean dkey = false;
BufferedImage backimage,pimage,eimage;

Game(){
frame1 = new JFrame("ゲームっぽいやつ");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setBackground(Color.WHITE);
frame1.setResizable(false);

frame1.setVisible(true);
Insets insets = frame1.getInsets();
frame1.setSize(600 + insets.left + insets.right, 400 + insets.top + insets.bottom);
frame1.setLocationRelativeTo(null);
frame1.setIgnoreRepaint(true);
frame1.createBufferStrategy(2);
bstrategy = frame1.getBufferStrategy();

frame1.addKeyListener(new MyKeyAdapter());

try{
pimage = ImageIO.read(getClass().getResourceAsStream("477c46d800bdf07c52db5d7ff13737d5_1920_KR.jpg"));
eimage = ImageIO.read(getClass().getResourceAsStream("ardyn-izunia.jpg"));
backimage = ImageIO.read(getClass().getResource("8956325_102954414000_2.jpg"));
}catch(IOException e){
e.printStackTrace();
}

Timer t = new Timer();
t.schedule(new MyTimerTask(),10,30);    

}

public static void main(String[] args) {
Game gtm = new Game();

}
class MyTimerTask extends TimerTask{
public void run(){
Graphics g = bstrategy.getDrawGraphics();
if (bstrategy.contentsLost()== false){
Insets insets = frame1.getInsets();
g.translate(insets.left, insets.top);

if(dkey == true){
cy = cy-1;
}else{
cy = cy+1;
}
g.clearRect(0, 0, 600, 400);
g.drawImage(pimage, 270, cy, frame1);
//g.setColor(Color.BLUE);
//g.fillOval(250,cy,100,100);
bstrategy.show();
g.dispose();

}
}

}
class MyKeyAdapter extends KeyAdapter{

@Override
public void keyPressed(KeyEvent ev) {
if(ev.getKeyCode()==KeyEvent.VK_D){
dkey = true;
}
}

@Override
public void keyReleased(KeyEvent ev) {
if(ev.getKeyCode()==KeyEvent.VK_D){
dkey =false;
}

}

}
}

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
読んで字の如く、input が null です。要するに画像が読み込めなかったんです。
もし画像ファイルがjp.ohtsuki.minigameパッケージ(質問のソースファイルと同じ場所)でない場所にあるなら、それが原因だと思います。あと可能性としてはファイル名が間違っているとか(確認なされたので大丈夫かと)
当方が思いつくのはこのくらいです。ちょっとご確認ください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る