[英]Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException Java
[英]Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException. Issue calling ActionListener from another class
我的应用程序的初稿是,我将actionListener与用于创建Jbutton的类放在同一个类中。这很好用,但我想整理一下。 有一个控制器类,可以创建框架并插入动作监听器。
控制器类:
public class Controller extends JPanel implements ActionListener {
GUI GUIClass;
public Controller() {
// TODO Auto-generated constructor stub
}
//Main
//create frame
// actionListener method below.....
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
System.out.println("..........");
if (src == GUIClass.AddBtn) { //Line 120 where I Have the issue
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Controller.actionPerformed(Controller.java:120)
......
.......
.....
我的GUI课* *
我声明我的按钮
JButton AddBtn, perviousBtn, NextBtn;
这是我如何将监听器添加到按钮
AddBtn.addActionListener(new Controller());
我尝试了一些东西,但似乎都没找到,请告诉您是否发现了一个愚蠢的错误。
谢谢。
在主窗体GUI中,初始化actionlistener类:
控制器c =新控制器(this);
将actionlistener添加到您的按钮:
AddBtn.addActionListener(c);
并在Controller类中将构造函数更改为:
public Controller(GUI g) {
this.GUIClass = g;
}
您是否曾经将GUIClass
设置为非空值? 您的构造函数似乎是空的,所以我猜不是。 如果没有,那么在取消引用此引用时,您将获得一个NPE。
未来技巧:当您遇到这种情况,而目视检查无法解决问题时,请在调试器中运行代码(那里有很多不错的,免费的代码)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.