我的应用程序的初稿是,我的 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 = 新控制器(此);
将操作侦听器添加到按钮:
AddBtn.addActionListener(c);
并在控制器类中将构造函数更改为:
public Controller(GUI g) {
this.GUIClass = g;
}
您是否曾经将GUIClass
设置为非空值? 您的构造函数似乎为空,所以我猜不是。 如果没有,则在取消引用此引用时将获得 NPE。
未来的提示:当您遇到这种情况并且无法通过目视检查找出问题时,请在调试器中运行代码(那里有很多好的免费代码)。