2016-11-20 8 views
0

私はこのエラーが発生する理由を理解しようとしていますが、これまでのところ結果はありません。クラス全体で変数とメソッドを正しく使用する方法

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() { 

    } 
} 

もしそうなら、私は、何かが足りない、何?ありがとう。

+0

あなたはメニューのオブジェクトを作成する必要があります。 メニューmenu = new Menu(); //クラスにデフォルトのコンストラクタが含まれている場合のサンプルです。このようなオブジェクトを作成できます –

答えて

0

menuのインスタンスを作成していません。現在はnullです。ヌルでは何も起動できません。

Menu javaの組み込みクラスですか?そのインスタンスを作成します。

Menu menu = new Menu(); 

What is a NullPointerException and how do I fix it?

+0

例を挙げてください。ここで少し混乱します。 –

関連する問題