我做一个jtree来管理一个POS软件的类别,界面简单,就是两列,左边是jtree,右边分别有新的大类(枝节点) 新的小类(叶节点) 删除类别(删除选种的) 修改类别(修改选中的)修改类别我是这样做的
jTree1.startEditingAtPath(jTree1.getSelectionPath());
可以让选种的节点处于被编辑状态目前我是做了下面一个方法,将数据库中的大类小类都读到树中显示,请问
1如何实现在选中位置之下新加节点?我试了一些insert方法不行啊,还有删除选种的节点。
2如何将修改后的数在点确定的时候写入数据库中呢?
3是不是我这种办法有些麻烦呢?高手推荐如何实现用树来管理类别好吗?我是不想用文本框这些。
下面这个方法是在窗口显示的构造方法中调用的
public void addjtreecontent()
  {
    //将数据库中的类别信息读到jtree中
    try {
      ResultSet rs2=null;
      s=frameindex.con.createStatement(1005, 1007);
      Statement s2=frameindex.con.createStatement(1005, 1007);
      String sql = "select * from maxtype";
      String sql2;
      rs = s.executeQuery(sql);
      root=new DefaultMutableTreeNode("资产类别管理");
      DefaultMutableTreeNode parent=null;
      DefaultMutableTreeNode leaf;
      while(rs.next())
      {
        parent=new DefaultMutableTreeNode(rs.getString(1));
        sql="select * from smalltype where maxtypename='"+rs.getString(1)+"'";
        rs2=s2.executeQuery(sql);
        while(rs2.next())
        {
          leaf = new DefaultMutableTreeNode(rs2.getString(1));
          parent.add(leaf);
        }
        root.add(parent);      }
      jTree1 = new JTree(root);
      jTree1.setEditable(true);
      rs.close();
      s.close();
      rs2.close();
      s2.close();
    }
    catch (Exception ex) {
      System.out.println(ex.getMessage());
    }
  }

解决方案 »

  1.   

    1如何实现在选中位置之下新加节点?我试了一些insert方法不行啊,还有删除选种的节点。DefaultMutableTreeNode node=
    (DefaultMutableTreeNode)tree.getLastSelectedPathComponent() ;//得到选种节点node.add(new DefaultMutableTreeNode("LeafNode"));//添加节点DefaultTreeModel treeModel=(DefaultTreeModel )tree.getModel();
    treeModel.removeNodeFromParent(node); // 删除选中节点 好久没碰了 好象是这样 楼主你自己测试一下看看如何