我有一个实现 ActionListener 的方法。在类的底部我有一些 get 方法。但是,每当我调用另一个类中的 get 方法时,我都会收到 NullPointerException。
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 有关。我可以从其他类返回值。
最佳答案
变量未初始化
HandleActions h;
public Game() {
h =new HandleActions(); //initialize
...
}
关于java - 从 ActionListener 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313461/