私はこのエラーが発生する理由を理解しようとしていますが、これまでのところ結果はありません。クラス全体で変数とメソッドを正しく使用する方法
Exception in thread "Thread-2" java.lang.NullPointerException
at Help.render(Help.java:22)
at Game.render(Game.java:246)
at Game.run(Game.java:123)
at java.lang.Thread.run(Unknown Source)
私はこの種のエラーが常に発生する別のクラスからメソッドを実行しようとしています。
public void centerText (String m , Graphics g, int y){
FontMetrics fm = g.getFontMetrics (g.getFont());
int sw = fm.stringWidth (m);
g.drawString (m , (Game.WIDTH * Game.SCALE + sw)/2 - sw , y + sw /2);
}
これはゲームの状態であるMenuクラスのメソッドです。
今、別のゲーム状態であるヘルプという別のクラスからこのメソッドを実行しようとしています。
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
public class Help {
Menu menu;
public void render(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g.setColor(Color.white);
Rectangle test = new Rectangle(Game.WIDTH * Game.SCALE/2 - 50, 350, 100, 50);
g2d.draw(test);
menu.centerText("Hello WOrld", g, 100);
}
public void tick() {
}
}
もしそうなら、私は、何かが足りない、何?ありがとう。
あなたはメニューのオブジェクトを作成する必要があります。 メニューmenu = new Menu(); //クラスにデフォルトのコンストラクタが含まれている場合のサンプルです。このようなオブジェクトを作成できます –