static public DefaultMutableTreeNode root = new DefaultMutableTreeNode("资产");
private JTree getJTree() {
if (jTree == null) {
DefaultMutableTreeNode [] Node = null;
db.dbconn();
int i = 1;
String sql = "select * from channel where class=1";

try{
rs = db.stmt.executeQuery(sql);
while(rs.next()){
i++;
Node[i] = new DefaultMutableTreeNode(rs.getString("channel"));
root.add(Node[i]);
}
rs.close();
} catch(Exception e){e.printStackTrace();}
db.closedb();
jTree = new JTree(root);
jTree.setEditable(true);
treeModel = (DefaultTreeModel) jTree.getModel();
}
return jTree;
}运行出现
java.lang.NullPointerException
at k.Property.getJTree(Property.java:139)错误行 Node[i] = new DefaultMutableTreeNode(rs.getString("channel"));

解决方案 »

  1.   

    DefaultMutableTreeNode [] Node = null; 这句话不报NULL指针才怪,你可以用List
      

  2.   

    static public DefaultMutableTreeNode root = new DefaultMutableTreeNode("资产"); 
    private JTree getJTree() { 
    if (jTree == null) { 
    db.dbconn(); 
    int i = 1; 
    String sql = "select * from channel where class=1"; try{ 
    rs = db.stmt.executeQuery(sql); 
    while(rs.next()){ 
    i++; 
    DefaultMutableTreeNode node = new DefaultMutableTreeNode(rs.getString("channel")); 
    root.add(node); 

    rs.close(); 
    } catch(Exception e){e.printStackTrace();} 
    db.closedb(); 
    jTree = new JTree(root); 
    jTree.setEditable(true); 
    treeModel = (DefaultTreeModel) jTree.getModel(); 

    return jTree; 
      

  3.   

    楼上的,,谢了,,你的方法没问题下面是我自己改的程序不报错,但树 没结果
    private JTree getJTree() {
    if (jTree == null) {

    db.dbconn();
    int i = 0,j=0;
    String sql = "select * from channel where class=1";
    try {
    rs = db.stmt.executeQuery(sql);
    while(rs.next()){
    j++;
    }
    DefaultMutableTreeNode[] Note = new DefaultMutableTreeNode[j];

    while (rs.next()) {
    i++;
    Note[i] = new DefaultMutableTreeNode(rs.getString("channel"));
    root.add(Note[i]);
    }
    rs.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    db.closedb();
      

  4.   

    while (rs.next()) { 
    i++; 
    Note[i] = new DefaultMutableTreeNode(rs.getString("channel")); 
    root.add(Note[i]); 

    这个时个rs已经指到尾了,这个循环是不会执行的.
      

  5.   

    db.dbconn();
    int i = 0, j = 0;
    String sql = "select * from channel where class=1";
    try {
    rs = db.stmt.executeQuery(sql);
    while (rs.next()) {
    j = rs.getRow();
    }
    DefaultMutableTreeNode[] Note = new DefaultMutableTreeNode[j]; while (rs.next()) {
    i++;
    Note[i] = new DefaultMutableTreeNode(rs
    .getString("channel"));
    root.add(Note[i]);
    } } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    rs.close();
    rs = null;
    } catch (SQLException k) {
    }
    }
    db.closedb(); jTree = new JTree(root);
    jTree.setEditable(true);这样也没结果,,怎么回事呢
      

  6.   

    try { 
    rs = db.stmt.executeQuery(sql);  
    DefaultMutableTreeNode[] Note = new DefaultMutableTreeNode[rs.getRow()]; while (rs.next()) { 
    i++; 
    Note[i] = new DefaultMutableTreeNode(rs 
    .getString("channel")); 
    root.add(Note[i]); 
    } } catch (Exception e) { 
    e.printStackTrace(); 
    } finally { 
    try { 
    rs.close(); 
    rs = null; 
    } catch (SQLException k) { 


    原因同上