Java从不同的类调用方法

Cor*_*rey 1 java methods class

我正在做一些非常基本的编码,试图从一个不同的类调用一个方法,但由于某种原因,每当我尝试从任何不同的类调用任何方法时,我都会得到一个空指针异常.我想我已经正确地创建了类的实例,但我不确定.如果有人能解释我的错误,我会很感激.

这是进行调用的类:

 public class Menu extends JPanel implements ActionListener{

Skeleton skeleton;
Board board;

public Menu(){

    setBackground(Color.BLACK);

    JButton button = new JButton("hello");  
    button.addActionListener(this);
    this.add(button);
}

public JPanel getPanel(){
    return this;
}

@Override
public void actionPerformed(ActionEvent e) {
    board.boardTest();
}
}
Run Code Online (Sandbox Code Playgroud)

这是包含该方法的类

public class Board extends JPanel{

public Board(){
setBackground(Color.WHITE);
}

public JPanel getPanel(){
    return this;
}

public void boardTest(){
    System.out.print("hello");
}
}
Run Code Online (Sandbox Code Playgroud)

如您所见,每当用户单击按钮时,它应打印出"hello".

Hov*_*els 8

当您尝试调用时,您的代码看起来应该抛出NullPointerException(NPE),board.boardTest()因为您在将Board对象分配给board变量之前进行调用,因此对null变量进行方法调用.

您必须先创建一个Board实例,然后才能尝试使用Board变量board.即

Board board = new Board();
Run Code Online (Sandbox Code Playgroud)

注1:对于将来的类似问题,您需要向我们展示异常文本,并在代码中通过注释指示哪些行引发异常.即

@Override
public void actionPerformed(ActionEvent e) {
    board.boardTest();  // **** A NullPOinterException is thrown here ****
}
Run Code Online (Sandbox Code Playgroud)

注意2:这个问题不是Swing特定的,而是一个基本的Java问题 - 在第一次为它指定有效对象之前,不能使用引用变量.