【发布时间】: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