为什么抛出了空指针异常

EXIT_ON_CLOSE 2008-05-25 05:41:22
我是想写一个登录界面,如现有两个界面:UserLogin和MainPage
我要在UserLogin里单击一个按钮进入MainPage界面我的代码如下:
mainFrame.setVisible(true);//mainFrame是MainPage的引用
si.closeConnection();//关闭连接
this.dispose();//消除对像


在mainFrame.setVisible(true)这一行抛了异常:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at liu.model.UserLogin.actionPerformed(UserLogin.java:112)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
95)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242
)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
如果那位还其他的方法,将更加感谢.
排除错误真是累啊!一个通宵没睡都没解决.
...全文
167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘彬彬 2008-05-25
  • 打赏
  • 举报
回复
嘿嘿,一个execute的用法就让LZ累了一个晚上啊!
精神可佳啊!
fiore 2008-05-25
  • 打赏
  • 举报
回复
executeUpdate是更新数据库调用的,你插入数据就是有更新数据库操作了所以有返回值的,就不会抛异常。
当你进行的是查询操作,当然返回值为null,所以会抛异常,查询的时候应该用execute方法。
KOOK_OKKO 2008-05-25
  • 打赏
  • 举报
回复
可能是

1.mainframe里面的控件没有用new;
2.查询写成executeupdate

老紫竹 2008-05-25
  • 打赏
  • 举报
回复
at liu.model.UserLogin.actionPerformed(UserLogin.java:112)

去看看 UserLogin.java 的112行
我是小辉辉 2008-05-25
  • 打赏
  • 举报
回复
mainFrame一定是空,你可以在那行的上面打一下
System.out.println(mainFrame);//应该是null

mainFrame.setVisible(true);
EXIT_ON_CLOSE 2008-05-25
  • 打赏
  • 举报
回复
小弟初学,请多多指教.

我感觉我是连上了数据库的,用户名和密码都能下确验证.就是单击登录按钮时进不了另一个界面而是抛出了异常,就是上面这个异
at liu.model.UserLogin.actionPerformed(UserLogin.java:112) 这行所指的就是下面这行

mainFrame.setVisible(true);//mainFrame是MainPage的引用,即另一个界面对像的引用.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧