将JButton actionListener传递给另一个Java类时出现Nullpointer异常
我有两个类(将JButton actionListener传递给另一个Java类时出现Nullpointer异常,java,nullpointerexception,jpanel,cardlayout,Java,Nullpointerexception,Jpanel,Cardlayout,我有两个类(Main_Menu和CancelListener)。当我调用我的CancelListener实例以使用正确的actionPerformed方法时,我得到一个NullPointerException 在MainMenu.java类中,我声明如下按钮: JButton button = new JButton(); button.addActionListener(new CancelListener()); 这是我的CancelListener()类 进一步信息:MainPanel是
Main_Menu
和CancelListener
)。当我调用我的CancelListener
实例以使用正确的actionPerformed
方法时,我得到一个NullPointerException
在MainMenu.java类中,我声明如下按钮:
JButton button = new JButton();
button.addActionListener(new CancelListener());
这是我的CancelListener()类
进一步信息:
MainPanel
是一个JPanel
,具有cardplayout
结构。在“取消”按钮上,我想显示一个特定的面板。我想将我的按钮视图类与按钮逻辑分开?当我不使用单独的类时,它可以工作。您需要设置菜单变量:
在CancelListener类中:
private Main_Menu menu;
public CancelListener(Main_Menu menu) {
this.menu = menu;
}
然后,在构建时:
button.addActionListener(new CancelListener(this));
您需要设置菜单
变量:
在CancelListener类中:
private Main_Menu menu;
public CancelListener(Main_Menu menu) {
this.menu = menu;
}
然后,在构建时:
button.addActionListener(new CancelListener(this));
@沃兹:是的,就是这样(1+)。无论何时获得NullPointerException(NPE),始终检查导致异常的行上使用的引用变量,并找出哪一个为null。然后,通常很容易在代码中检查它为什么为null(在这里,您在使用菜单变量之前从未初始化它)。非常感谢。我会在4分钟内选择这个答案。再次感谢您,您知道如何在嵌套类中执行此操作吗?@Warz:是的,就是这样(1+)。无论何时获得NullPointerException(NPE),始终检查导致异常的行上使用的引用变量,并找出哪一个为null。然后,通常很容易在代码中检查它为什么为null(在这里,您在使用菜单变量之前从未初始化它)。非常感谢。我会在4分钟内选择这个答案。再次感谢您,您知道如何在嵌套类中实现这一点吗?