这里的新人。我在将文本打印到JTextArea的方法上遇到麻烦。

addToDisplay方法在本机GameWindow类中可以正常工作。这里是:

public class GameWindow extends JFrame implements KeyListener {
    JTextArea displayArea;

    public GameWindow() {
        ...
        this.addToDisplay(""); //Works fine
    }
    public void addToDisplay(String newString) {
        displayArea.append("\n" + newString);
        displayArea.selectAll();
    }
}


在同一包的另一个类中调用该方法时,它将引发java.lang.NullPointerException

public class Duelist {
    private GameWindow window;

    public Duelist(String n) {
        ...
    }

    public void dueling(Duelist opponent) {
        ...
        window.addToDisplay(""); //Exception occurs here
    }
}


请告诉我如何摆脱异常。如果您需要更多信息,请在评论中告诉我。

最佳答案

使用前,必须在Duelist类中初始化GameWindow

GameWindow window=new GameWindow();


对于构造函数中的ex或调用该方法之前所需的任何位置

public Duelist(String n) {
    window=new GameWindow();
        ...
    }

07-25 20:28