JTree有个属性:
protected boolean editable将其设为true则所有节点可编辑,请问如何实现某个特定的节点可编辑呢?

解决方案 »

  1.   

    public class DisabledNode extends DefaultMutableTreeNode
     public DisabledNode(Object userObject, boolean allowsChildren)
    这个DisabledNode 就代表你节点的对象
    userObject是你的树节点的名字,boolean为是否可编辑
    可以用这个构造器往里面加
      

  2.   

    不行啊...请教下具体怎么写...等于是把DefaultMutableTreeNode这个类重写?
      

  3.   

    public class DisabledNode extends DefaultMutableTreeNode
     public DisabledNode(Object userObject, boolean allowsChildren) 
     public void setEnabled(boolean enabled)
     public boolean isEnabled()class aaa extends JFrame
    String[] strs = {"swing",     // 0
            "plaf",      // 1
         "basic",     // 2
         "metal",     // 3
         "JTree",     // 4
         "plaf",      // 5
         "motif"};    // 6    DisabledNode[] nodes = new DisabledNode[strs.length];
        for (int i=0;i<strs.length;i++) {
          nodes[i] = new DisabledNode(strs[i]);
        }
        nodes[0].add(nodes[1]);
        nodes[1].add(nodes[2]);
        nodes[1].add(nodes[3]);
        nodes[0].add(nodes[4]);
        nodes[0].add(nodes[5]);
        nodes[5].add(nodes[6]);
        nodes[3].setEnabled(false);
        nodes[5].setEnabled(false);
    应该是这样写,呵呵.试试
      

  4.   


    tree.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent evt) {
    if (evt.getClickCount() == 1) {      
    TreePath path =
    tree.getPathForLocation(evt.getX(), evt.getY()); if (path != null) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getLastPathComponent();
      
     if (node.getLevel()==2 && !node.toString().equals("Stock Location")) {
    tree.setEditable(true);
    System.out.println("setEditable is true");

           }
           else{ 
               tree.setEditable(false);
               System.out.println("setEditable is false");}
          }
    }

    }
    });
      

  5.   

    行了,这样,用pathctrl v 得不太好......看不清...谢谢!