ペイン メソッド内で作成した Drawer クラスを参照しようとするたびに、null ポインター例外が発生します。ただし、ペイント関数の外では、クラスは完全に機能します。作成したゲーム クラスは、ペイント メソッド内でも動作します。drawer クラスを参照できない理由がわかりません。
public class Main extends Applet implements Runnable, KeyListener {
public static boolean CONSOLE = true;
// Integers
public final String Title = "";
public final int res_X = 800;
public final int res_Y = 600;
private Image image;
private Graphics second;
private URL base;
public Game game;
public Drawer drawer;
public void init() {
setSize(res_X, res_Y);
setBackground(Color.GRAY);
setFocusable(true);
addKeyListener(this);
Frame frame = (Frame) this.getParent().getParent();
frame.setTitle(Title);
try {
base = getDocumentBase();
} catch (Exception e) {
e.printStackTrace();
}
}
public void start() {
**Drawer drawer = new Drawer();**
Thread mainThread = new Thread(this);
mainThread.start();
Thread gameThread = new Thread(game = new Game(drawer));
gameThread.start();
}
public void run() {
while (true)
repaint();
}
public void paint(Graphics g) {
**System.out.println((drawer == null)?"Null":"Exists");**
^ if I replace with game it returns Exists
g.fillRect(0, 0, res_X, 20);
g.fillRect(0, res_Y - 20, res_X, 20);
g.fillRect(0, 0, 20, res_Y);
g.fillRect(res_X - 20, 0, 20, res_Y);
g.fillRect(game.player.xPos, game.player.yPos, 20, 60);
}