我正在试图找出我收到此错误的原因,但到目前为止还没有结果。
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类中的一种方法,它是一种游戏状态。
现在,我尝试从另一个名为Help的类中执行此方法,这是另一个游戏状态。
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() {
}
}
我错过了什么,如果是的话,什么?感谢。
答案 0 :(得分:0)
您还没有创建menu
的实例。目前它是null
。你不能在null上调用任何东西。
是Menu
java的内置类吗?创建它的实例。
Menu menu = new Menu();