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".
当您尝试调用时,您的代码看起来应该抛出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问题 - 在第一次为它指定有效对象之前,不能使用引用变量.