【问题标题】:Use nested static class as ActionListener for the Outer class [closed]使用嵌套静态类作为外部类的 ActionListener [关闭]
【发布时间】:2012-11-11 04:51:18
【问题描述】:

我想使用嵌套静态类作为actionListener 用于封闭类的GUI 元素。 我做了这样的事情:

public class OuterClass {

    public static void myImplementation() {
        OuterClass.StartupHandler startupHandler = new OuterClass.StartupHandler();
        exitMenuItem.addActionListener(startupHandler); // error Line
    }

    public static class StartupHandler implements ActionListener {

   @Override
    public void actionPerformed(ActionEvent e) {
        //throw new UnsupportedOperationException("Not supported yet.");

        if (e.getSource() == exitMenuItem) {
            System.exit(1);
        } else if (e.getSource() == helpMenuItem) {
            // show help menu
        }
    }
}
}

但是当我调用这段代码时,我在 //error 行得到了NullPointerException。 这是执行此操作的正确方法还是我缺少某些东西?

【问题讨论】:

  • 看起来exitMenuItem 变量在调用myImplementation 方法时具有null 值。使用调试器在您的代码中修复此问题。
  • 我同意@LuiggiMendoza 向NullPointerException 提问是没有意义的,请获取调试器并对其进行调试。以后你也可以使用这些知识。每天都有很多关于NPE的问题
  • @LuiggiMendoza: Aaahhh.... exitMEnuItem 未初始化。那是我犯的一个愚蠢的错误。我现在会处理这些事情。谢谢

标签: java actionlistener static-members nested-class


【解决方案1】:

exitMenuItem 是否正在初始化?我敢打赌是null

如果您包含更多类(例如您声明 exitMenuItem 的位置),我们将更容易地指出问题。

【讨论】:

  • 谢谢。 exitMEnuItem 未初始化。那只是我的一个愚蠢的错误。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
  • 2023-03-25
  • 2017-08-27
  • 2021-09-14
  • 2016-01-15
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多