很难的一个问题,
想了好久................就是:点击JTREE节点从数据库读出根据该节点和数据库另一个字段找到他的属性信息(其他字段信息),在右边Panel显示出来,
问题是,在JTREE上有两个节点的名字一样,但是他们在数据库的属性不一样,(属性不是由节点名字唯一决定的,
是由节点名字和另外一个数据库字段决定的,但是JTREE上节点只显示这个字段的名字)
如何在点击该节点的时候,获取该节点的属性!!!不知道我说明白了没有!!!
谢谢大家!!

解决方案 »

  1.   

    TreePath path = tree.getPathForLocation(er.getX(), er.getY());currentSelection = (DefaultMutableTreeNode) path.getLastPathComponent();这样子得到你当前点击的节点;然后就可以获取其属性了
      

  2.   

    er是什么?
    currentSelection应该是个DefaultMutableTreeNode,
    但是我两个节点的名字是一样的啊?
    我要根据节点的名字和它的另外一个属性(怎么关联起来?),查找数据库,获取它的属性
      

  3.   

    也就是所节点能保存对象信息吗?
    对象里面存贮两个字段信息(String),根据这两个字段查找数据库显示信息.
    而节点名字只是对象中的一个String.(这样就可能有重名的节点)
    谢谢大家
    高手指教
    大家有做个jtree经验的人,肯定碰到过这种情况
      

  4.   

    那就是说你的数据库里有个表A,它存储某个节点的属性,而节点名又会有重复的。很明显,节点名不能作为A表的主键(不满足唯一性)。那么建议你,要么用节点的Path作主键,要么就设两个主键,节点名和另一个字段(比如说它的父节点吧)一起做主键。这样能行吗?
      

  5.   

    哎,刚写了好多,回复失败,郁闷!!!
    hubert_huang(笑晓,你说的有理,
    你说:用节点的Path作主键,要么就设两个主键,。那么Path是如何包含两个字段的信息???
    节点名和另一个字段(比如说它的父节点吧)一起做主键,可能不行,父节点可能一样啊
      

  6.   

    就是说我数据库两个字段加起来作为主键,但jtree上节点名字只是其中一个字段的名字,还有一个字段是不在节点上显示的,就有出现重名的节点,怎么点重名的节点查数据库获取他们的其他属性信息
      

  7.   

    用节点的Path作主键,这样好像有点能成功,我想像啊
      

  8.   

    恩,用path比较好啊,这个肯定是唯一的。
      

  9.   

    path好像也不唯一啊!!
    如果两个节点的名字一样,父节点也一样,那么treepath不也一样吗?
      

  10.   

    1、可以先定义一个类,如下所示:
    class MyObject{
        public static int number = 0;
        public String name = null;
        //节点显示的字符串
        public String caption = null;
        //标明节点唯一性
        public int id = 0;
        
        public MyObject(String name,String caption){
            this.name = name;
            this.caption = caption;
            this.id = number++;
        }    //显示该类时调用该方法
        public String toString(){
           return caption;
        }
    }
    2、创建节点:
    DefaultMutableTreeNode node = new DefaultMutableTreeNode(new MyObject("my name","my caption"));
    3、辨别节点唯一性:
    可以根据id或name判断节点的唯一性