2016-09-04 84 views
0

我有一个实现ActionListener的方法。在课程的最后,我有一些get方法。但是每当我在另一个类中调用get方法时,我都会得到一个NullPointerException。从ActionListener返回值

package com.FishingGame.Screen; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class HandleActions implements ActionListener{ 

private boolean goFishing = false, sell = false, checkW = false; 
private int test = 12; 

public HandleActions(){ 

} 



void resetAllVars(){ 
    goFishing = false; 
    sell = false; 
    checkW = false; 
} 

public void actionPerformed(ActionEvent e) { 
    String bSource = e.getActionCommand(); 

    resetAllVars(); 

    if(bSource == "go fishing"){ 

     System.out.println("1"); 
     goFishing = true; 

    }else if(bSource == "sell"){ 

     System.out.println("2"); 
     sell = true; 

    }else if(bSource == "check weather"){ 

     System.out.println("3"); 
     checkW = true; 

    } 
} 

public boolean getGoFishing(){ 
    return goFishing; 
} 
public boolean getSell(){ 
    return sell; 
} 
public boolean getCheckW(){ 
    return checkW; 
} 
public int getTest(){ 
    return test; 
} 

}

public class Game implements Runnable { 

HandleActions h; 
Window w; 

public Game() { 

    w = new Window(600, 400, "Game"); 
    w.add(w.mainScreen()); 
    w.setVisible(true); 
    System.out.println(h.getTest()); 
} 

Thread thread = new Thread(this); 


@Override 
public void run() { 


    } 

public static void main(String args[]) { 
    Game g = new Game(); 


    } 

} 

控制台说,错误是从h.getTest()调用的到来。这是否与HandleActions类实现ActionListener这一事实有关。我可以很好地从其他类返回值。

+0

初始化H作为HandleActions H =新HandleActions(); –

回答

1

变量是未初始化

HandleActions h; 
public Game() { 
    h =new HandleActions(); //initialize 
    ... 
} 
+0

是的,我只是洗澡,并有这种认识XD。 – Hong