急,好可加分!!!
我要实现一个swing控件JTree,具有以下特点:
1、节点为对象节点O;
2、O有两个属性,name和value。两属性均要显示,中间加一“:”;
3、只有value部分可编辑,编辑器为文本框或combo均可;
4、可以获取某一节点对象O。
在线等答案!

主要难点:(1)只有value部分可编辑;(2)编辑后可获取节点对象O。
我现在主要被(2)难住,因为编辑后我得到的不是对象O,而只是value值,可能我的思路有误。

解决方案 »

  1.   

    貌似这个样子:+root:value
      -node1:value
      -node2:value个人感觉用JXTreeTable会更好看一些。看看我的blog把http://vearn.javaeye.com/blog/319242,兴许能帮上你
      

  2.   

    你把你的那个对象O设置到TreeNode的userObject中,以后getUserObject()获得就可以了。
      

  3.   

    O的toString方法写成return name + "-" + value;
    DefaultMutableTreeNode 的getUserObject方法即可获取O了.
    自已写celleditor.
      

  4.   

    1楼可以实现楼主的要求
    如果写celleditor水平高,可以考虑4楼,不过太麻烦了如果不影响外观的话,可以考虑右键PopupMenu的方式解决
    构造object包含三个对象name、value、分隔符“:”
    写方法getObjectForLocation(参照JTree)通过JTree.getPathForLocation(evt.getX(), evt.getY())getLastPathComponent()方法获得选择的object
    通过自编方法getObjectForLocation(evt.getX(), evt.getY()) 获得对object的某个对象的选择
    弹出PopupMenu  进行修改如果想搞得好看点直接在Node上修改,就要像四楼那样些显示函数喽,麻烦的很嘞