线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException。发出从另一个类调用ActionListener的问题

时间:2012-11-16 15:19:00

标签: java actionlistener

我的应用程序的第一个草稿是我将actionListener放在与用于创建Jbutton的类相同的类中。这个工作正常,但我想整理它。有一个控制器类,我创建我的框架并在我的actionlistener。

控制器类:

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());

我尝试了一些按钮,我似乎无处可去,请告诉你是否发现了一个愚蠢的错误。

谢谢。

2 个答案:

答案 0 :(得分:1)

在主窗体GUI中初始化actionlistener类:

  

控制器c =新控制器(this);

将actionlistener添加到按钮:

  

AddBtn.addActionListener(C);

并在Controller类中将构造函数更改为:

public Controller(GUI g) {
   this.GUIClass = g;
}

答案 1 :(得分:0)

你有没有将GUIClass设置为非空的东西?你的构造函数似乎是空的,所以我猜不是。如果没有,那么在取消引用此引用时,您将获得NPE。

未来提示:当你遇到这样的情况并且你无法通过视觉检查找出问题时,在调试器中运行代码(那里有很多好的免费代码)。