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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

3435閲覧

エラーの修正をする方法がわかりません。

taiyokarasu

総合スコア27

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2017/02/05 12:28

編集2022/01/12 10:55

Exception in thread "Thread-14" java.lang.NullPointerException
at MessageEngine.drawCharacter(MessageEngine.java:67)
at MessageWindow.draw(MessageWindow.java:125)
at MainPanel.gameRender(MainPanel.java:210)
at MainPanel.run(MainPanel.java:124)
at java.lang.Thread.run(Thread.java:745)

このエラーの原因がよくわかりません。nullが原因だということがなんとなくわかるのですが、

エラー
at MessageEngine.drawCharacter(MessageEngine.java:67)
プログラム
pos.x + color, pos.y, pos.x + color + FONT_WIDTH, pos.y + FONT_HEIGHT, null);

エラー
at MessageWindow.draw(MessageWindow.java:125)
プログラム
messageEngine.drawCharacter(dx, dy, c, g);

エラー
at MainPanel.gameRender(MainPanel.java:210)
プログラム
// メッセージウィンドウを描画
messageWindow.draw(dbg);

エラー
at MainPanel.run(MainPanel.java:124)
プログラム
// レンダリング
gameRender();

エラー
at java.lang.Thread.run(Thread.java:745)
プログラム
public void run() {
if (target != null) {
target.run();
}

上のようにエラーの( )の中を押しても、その下のプログラムに行き着くので、どうやって修正していいのかがわかりません。
どういう風に修正すればいいのか、アドバイスをください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Threadクラス以外は全部自作クラスですね?
最初のMessageEngine.drawCharacterがNullPointerExceptionが発生した箇所なので、
この行に書かれている参照型変数のいずれかがnullになっていないかチェックしてください。

投稿2017/02/05 12:37

swordone

総合スコア20649

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taiyokarasu

2017/02/13 18:36

pos.x + color, pos.y, pos.x + color + FONT_WIDTH, pos.y + FONT_HEIGHT, null); 以外に、nullと表示をしている部分はないので、ここのnullを変更すればいいということでしょうか
taiyokarasu

2017/02/14 14:09 編集

しかし、このnullを何に変更すればいいのかがわかりません。 とりあえず、思い付いたtrueやthisに変更してみました。 そしたら、Intで宣言されたものではないからということでエラーが出て、その他にnull以外に変更するとdrawImageの部分にエラーが出てしまいました。
swordone

2017/02/14 14:27

あ、ごめんなさい。勘違いしました。 posがnullでないかチェックしてください。
taiyokarasu

2017/02/16 03:18 編集

すみません。 以下がエラーで表示されるプログラムの部分ですが public void drawCharacter(int x, int y, char c, Graphics g) { Point pos = (Point)kana2Pos.get(new Character(c)); g.drawImage(fontImage, x, y, x + FONT_WIDTH, y + FONT_HEIGHT, pos.x + color, pos.y, pos.x + color + FONT_WIDTH, pos.y + FONT_HEIGHT, null); } posがnullになっているのかが、よくわかりません
xebme

2019/04/16 09:38

「参照型変数のいずれかがnull」とアドバイスされています。参照型変数は、g、pos、kana2Pos、fontImageでしょうか。g はどうですか。もし行番号があてにならないなら最新のクラスにコンパイルしなおして再実行してみましょう。
xebme

2019/04/16 11:38

すみません、pos が null というのが最も可能性が高いので、kana2Pos.getのなかを調べてnullを返していないかを調べるのがよいでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問