【问题标题】:actionPerformed method call JavaactionPerformed 方法调用 Java
【发布时间】:2013-03-05 17:48:41
【问题描述】:

我构建了一个接口,当我调用 actionPerformed 方法时,它给了我错误。

我的方法:

public void actionPerformed(ActionEvent evento){
    Button active;
    active = (Button) evento.getSource(); //line 144
    if(active==botonSalir) 
        mainF.dispose();
    ...
}

主要方法:

public static void main(String [] args){
    InterfaceE objetoM = new InterfaceE();
    objetoM.actionPerformed(); //line 195
}

我得到的错误是:

Exception in thread "main" java.lang.NullPointerException
    at InterfaceE.actionPerformed(InterfazceE.java:144)
    at InterfaceE.main(InterfaceE.java:195)

InterfaceE()中的参数应该是什么?

【问题讨论】:

  • actionPerformed() 方法的主体看起来如何?
  • 如需尽快获得更好的帮助,请发布SSCCE。如果发布代码 sn-ps,请指出哪一行是第 144 行。
  • 另外,如果 actionPerformed 方法是这样定义的,那么您的代码甚至无法编译,因为它需要一个 ActionEven 作为参数,并且您在没有任何参数的情况下调用它。
  • InterfaceE 是否属于接口类型?编译器如何让你编译它

标签: java interface nullpointerexception awt


【解决方案1】:

您必须在未分配 Interfaz 对象时调用 Interfaz 的方法,或者在 actionPerformed() 方法中它必须为 null。 objectM 不是 null,这是肯定的,因为我可以看到代码。但是您还没有粘贴 actionPerformed() 方法的代码。让我们看看actionPerformed()方法中的代码,以便我们给你准确的答案。

更新在您有问题的编辑之后。

你没有得到compile time 错误,因为你没有调用acionPerformed 方法吗? actionPerformed 必须采用 anonymous 类的 anonymous 对象,并实现 getSource() 方法。您没有在 actionPerformed 方法中发送 ActionEvent 匿名对象作为参数。 您的代码在第 1 行吗? 195的样子,

objetoM.actionPerformed(new ActionEvent(){ //this is your line 195 for anonymous object.
     public ReturnType getSource(){
           // some code
     }
}
);

【讨论】:

  • 正如@JBNizet 所指出的,使用的代码必须与上面的sn-ps 中显示的不同。发布 SSCCE。
  • 我的代码还应该包括什么?我发布了每种方法中最相关的,并发布了整个主要方法:(
  • 现在您已将 Interfaz 编辑为 InterfazceE。你能帮我们粘贴一些相关的代码sn-p吗?我知道一段时间后你(你自己)会摆脱这个 NullPointerExceptioin :-)
  • @AndrewThompson 我在第一行给出了可能的答案,所以答案不是评论:-)
  • InterfaceE 是类的名称,builder 方法只初始化所有的图形元素。上面贴的是代码的相关部分,不是吗?
猜你喜欢
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
相关资源
最近更新 更多