问题描述
下面是我用javaSwing的时候所报出的一个空指针异常,是我在SwingWorker中使用jxl包循环解析Excel文件,同时改变UI的时候报出的一个错。这个错误很奇怪,没有任何规律,非常的随意,有时候报,有时候又不会报错,而且每次报错的时候都不一样,而且也没有指定哪里出错,对程序也没有任何的影响,所以一直找不到办法解决,想在这里问下到底是怎么回事。下面是错误信息:java.lang.NullPointerExceptionatjavax.swing.plaf.basic.BasicListUI.getHeight(UnknownSource)atjavax.swing.plaf.basic.BasicListUI.paintImpl(UnknownSource)atjavax.swing.plaf.basic.BasicListUI.paint(UnknownSource)atjavax.swing.plaf.ComponentUI.update(UnknownSource)atjavax.swing.JComponent.paintComponent(UnknownSource)atjavax.swing.JComponent.paint(UnknownSource)atjavax.swing.JComponent.paintToOffscreen(UnknownSource)atjavax.swing.RepaintManager$PaintManager.paintDoubleBuffered(UnknownSource)atjavax.swing.RepaintManager$PaintManager.paint(UnknownSource)atjavax.swing.RepaintManager.paint(UnknownSource)atjavax.swing.JComponent._paintImmediately(UnknownSource)atjavax.swing.JComponent.paintImmediately(UnknownSource)atjavax.swing.RepaintManager.paintDirtyRegions(UnknownSource)atjavax.swing.RepaintManager.paintDirtyRegions(UnknownSource)atjavax.swing.RepaintManager.prePaintDirtyRegions(UnknownSource)atjavax.swing.RepaintManager.access$700(UnknownSource)atjavax.swing.RepaintManager$ProcessingRunnable.run(UnknownSource)atjava.awt.event.InvocationEvent.dispatch(UnknownSource)atjava.awt.EventQueue.dispatchEventImpl(UnknownSource)atjava.awt.EventQueue.access$400(UnknownSource)atjava.awt.EventQueue$2.run(UnknownSource)atjava.awt.EventQueue$2.run(UnknownSource)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.security.AccessControlContext$1.doIntersectionPrivilege(UnknownSource)atjava.awt.EventQueue.dispatchEvent(UnknownSource)atjava.awt.EventDispatchThread.pumpOneEventForFilters(UnknownSource)atjava.awt.EventDispatchThread.pumpEventsForFilter(UnknownSource)atjava.awt.EventDispatchThread.pumpEventsForHierarchy(UnknownSource)atjava.awt.EventDispatchThread.pumpEvents(UnknownSource)atjava.awt.EventDispatchThread.pumpEvents(UnknownSource)atjava.awt.EventDispatchThread.run(UnknownSource)
解决方案
解决方案二:
不知所云,也许是类库本身的问题,把你类库升级到最新版试试,说不定他们已经在新版本中解决了这些问题也说不定。我说的是第3方,不是JDK
解决方案三:
如果是第三包本身的实现问题,这太不应该了。
解决方案四:
直接trycatch捕捉异常
解决方案五:
引用3楼q745401990的回复:
直接trycatch捕捉异常
这种异常是在swing那里的,但是铁定是用户使用不当造成
解决方案六:
解决方案七:
引用4楼vipcxj的回复:
Quote: 引用3楼q745401990的回复:
直接trycatch捕捉异常这种异常是在swing那里的,但是铁定是用户使用不当造成
既然知道的话那就直接在那进行异常的处理
解决方案八:
空指针异常一般是你的程序调用了一个未得到初始化的对象,检查一下初始化顺序,还有资源获取的顺序,很简单,一定是你还没初始化就拿过来用,具体是什么,你自己找找看。
解决方案九:
java只是报空指针错误,而发生的对原因是程序本身传的空参数进去才报错的,这个不能怪java本身,要去找解析excel时每一列是不是有空的情况.