这种错误可能实你的某些对象在为null时你的程序对其进行了操作,同意楼上的说法,要么用调试工具,要么多打出些日志

解决方案 »

  1.   

    直接杀到javax.swing.plaf.basic.BasicTreeUI.paint那里往前找原因
      

  2.   

    1、如果你用javac进行编译时,请加上参数
    -g具体的参数意义如下:
      -g                     Generate all debugging info
      -g:none                Generate no debugging info
      -g:{lines,vars,source} Generate only some debugging info
    2、如果你用JB进行编译的时候请选择
    工程属性==>Build===Java===Debug Options当中选择你所需要的项目
    比如:Source,line,and vaiable information3、Good Luck4、国庆快乐!
      

  3.   

    你是不是覆盖了paint方法?
    那么就是你的paint方法中有问题。假如删除你的paint方法,程序执行正常,那么就肯定是在你自己写的paint方法中发生的空指针错误。
    试着一句一句的恢复,肯定能最终定位到出错的语句的。
      

  4.   

    应该是JDK的Swing包及AWT的一些内建功能出错了,所以没有你编的Java文件行。至于那个导致出错的Null对象,可以是你自己定义的,也可以是JDK内部的。那个1123行是这一句(1.4.1及1.4.2)
        isLeaf = treeModel.isLeaf(path.getLastPathComponent());   //1123有两个对象
        protected TreeModel         treeModel;
        TreePath        path;
      

  5.   

    用调试工具,异常不重现,多打些日志虽然很麻烦,但很有效,我用它找到了相应的语句:myTree.updateUI();原来这条语句是放在一个任务线程(与SwingWorker相关)中的,即完成任务后更新一下树。把它挪出去不再抛异常了。具体原因我还没有明白。另外我比较同意littlecpu的观点。