繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM