DefaultMutableTreeNode page[]=new DefaultMutableTreeNode[200];
我首先定义一个节点数组,由于节点显示的值从数据库中调,
page[i]=new DefaultMutableTreeNode(rs3.getString("pageno"));
root.add(page[i]);
这样可以实现,我得问题是我的page[i]=new 的new是不是重复定义了page[]这个数组?
其实我只想把rs3.getString("pageno"))赋给page[i]节点,我曾尝试
Object pag=rs3.getString("pageno");
  page[i].setUserObject(pag);可是运行出错,
Exception in thread "main" java.lung.NullPointerException,怎么回事,如何解决?

解决方案 »

  1.   

    DefaultMutableTreeNode page[]=new DefaultMutableTreeNode[200];
    我首先定义一个节点数组,由于节点显示的值从数据库中调,
    page[i]=new DefaultMutableTreeNode(rs3.getString("pageno"));
    root.add(page[i]);
    这个并没有重复定义呀。。
    DefaultMutableTreeNode page[]=new DefaultMutableTreeNode[200];
    声明了你的数组里放的什么类型。
    page[i]=new DefaultMutableTreeNode(rs3.getString("pageno"));
    对树组里面的元素实例化。。并没有重复定义
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    import com.incors.plaf.alloy.*;//组件的下载网址http://www.incors.com/lookandfeel/
    /*将alloy.jar放在c:\j2sdk1.4.0\jre\lib\ext\目录下.
     */
    public class TreeDemo3
    {
        public TreeDemo3()
        {
            JFrame f = new JFrame("TreeDemo");
            Container contentPane = f.getContentPane();
            
            
            DefaultMutableTreeNode root = new DefaultMutableTreeNode("资源管理器");
            DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("我的公文包");
            DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("我的电脑");
            DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("收藏夹");
            DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Readme");
            
            DefaultTreeModel treeModel = new DefaultTreeModel(root);        /*DefaultTreeModel类所提供的insertNodeInto()方法加入节点到父节点的数量.
             *利用DefaultMutableTreeNode类所提供的getChildCount()方法取得目前子节点的数量.
             */
            treeModel.insertNodeInto(node1, root, root.getChildCount());
            treeModel.insertNodeInto(node2, root, root.getChildCount());
            treeModel.insertNodeInto(node3, root, root.getChildCount());
            treeModel.insertNodeInto(node4, root, root.getChildCount());
            
            DefaultMutableTreeNode leafnode = new 
                    DefaultMutableTreeNode("公司文件");        //DefaultTreeModel类所提供的insertNodeInto()方法加入节点到父节点的数量.
            treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
            leafnode = new DefaultMutableTreeNode("个人信件");
            treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
            leafnode = new DefaultMutableTreeNode("私人文件");
            treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
            
            leafnode = new DefaultMutableTreeNode("本机磁盘(C:)");
            treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
            leafnode = new DefaultMutableTreeNode("本机磁盘(D:)");
            treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
            leafnode = new DefaultMutableTreeNode("本机磁盘(E:)");
            treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
            
            DefaultMutableTreeNode node31 = new DefaultMutableTreeNode("网站列表");
            treeModel.insertNodeInto(node31, node3, node3.getChildCount());
            leafnode = new DefaultMutableTreeNode("奇摩站");
            treeModel.insertNodeInto(leafnode, node3, node3.getChildCount());
            leafnode = new DefaultMutableTreeNode("职棒消息");
            treeModel.insertNodeInto(leafnode, node3, node3.getChildCount());
            leafnode = new DefaultMutableTreeNode("网络书店");
            treeModel.insertNodeInto(leafnode, node3, node3.getChildCount());
            try {
               LookAndFeel alloyLnF = new AlloyLookAndFeel();    
               UIManager.setLookAndFeel(alloyLnF);
            } catch (UnsupportedLookAndFeelException ex) {
            // You may handle the exception here
            }
             // this line needs to be implemented in order to make JWS work properly
              UIManager.getLookAndFeelDefaults().put("ClassLoader", getClass().getClassLoader());
            
            //以TreeModel建立JTree。
            JTree tree = new JTree(treeModel);
            /*改变JTree的外观**/
              tree.putClientProperty("JTree.lineStyle","Horizontal");
            /*改变JTree的外观**/
            JScrollPane scrollPane = new JScrollPane();
            scrollPane.setViewportView(tree);
            
            contentPane.add(scrollPane);
            f.pack();
            f.setVisible(true);
            
            f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });    }    public static void main(String args[]) {
        
            new TreeDemo3();
        }
    }
      

  3.   

    1、DefaultMutableTreeNode page[]=new DefaultMutableTreeNode[200];
    只定义了一个length为200的DefaultMutableTreeNode数组,只表明这个拥有200个元素的数组
    它的每个元素都指向DefaultMutableTreeNode类型。
    2、page[i]=new DefaultMutableTreeNode(rs3.getString("pageno"));
    只有这个时候才真正创建了对象所以只想把rs3.getString("pageno"))赋给page[i]节点
    Object pag=rs3.getString("pageno");
      page[i].setUserObject(pag);肯定报NullPointerException错