你可以把这个节点先remove然后再加入一个。
再一个方法就是,你在节点上不加入字符,直接加一个对象。例
String one="根节点";
String two="第一节点";
DefaultMutableNode root = new DefaultMutableNode(one);
DefaultMutableNode tnd = new DefaultMutableNode(two);
JTree tree = new JTree( root );这样你以后只要修改two的值就可以修改树上显示的字符。说一下,树上显示是你的类中的toString 方法返回的值。

解决方案 »

  1.   

    只要节点内加入的都是对象,就可以了,先做个BEAN ,有SET和GET方法,还有TOSTRING,这是节点最终显示的数据,要改节点名的话,只要得到节点.GETUSEROBJECT,然后转为原行的那个对象,再SET一下就可以了,哦,好像再TREE.UPDATEUI一下
      

  2.   

    估计这是你想要的结果
    package yagumo.LayerOut.A;import java.awt.*;
    import javax.swing.*;
    import java.awt.Rectangle;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.TreeSelectionModel;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.tree.*;/**
     * <p>Title: 八云测试用例</p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2005</p>
     *
     * <p>Company: </p>
     *
     * @author yagumo
     * @version 1.0
     */
    public class ChangeNodeName extends JFrame {
        public ChangeNodeName() {
            try {
                jbInit();
            }
            catch (Exception exception) {
                exception.printStackTrace();
            }
        }    private void jbInit() throws Exception {
            getContentPane().setLayout(null);
            jTree1.setBounds(new Rectangle(54, 42, 289, 99));
            jButton1.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    TreePath treePath = jTree1.getSelectionPath();
                    DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath.getLastPathComponent();
                    //改名
                    node.setUserObject("123");
                    DefaultTreeModel treeModel = (DefaultTreeModel) jTree1.getModel();
                    //刷新
                    treeModel.reload();
                    //重置选择支
                    jTree1.setSelectionPath(treePath);
                }
            });
            this.getContentPane().add(jButton1);
            this.getContentPane().add(jTree1);
            jButton1.setBounds(new Rectangle(162, 178, 71, 25));
            jButton1.setText("jButton1");
        }    public static void main(String[] args) {
            ChangeNodeName changenodename = new ChangeNodeName();
            changenodename.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            changenodename.setSize(400, 300);
            changenodename.show();
        }
        /**
         * 生成JTreePath树型结构
         * @return JTree
         */
        private JTree getJTreePath() {
            DefaultMutableTreeNode nodeTop = new DefaultMutableTreeNode("PeiGet");
            DefaultMutableTreeNode nodeDownloading = new DefaultMutableTreeNode("正在下载");
            nodeTop.add(nodeDownloading);        JTree jTree = new JTree(nodeTop);
            jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
            return jTree;
        }
        
        JTree jTree1 = getJTreePath();
        JButton jButton1 = new JButton();
    }
      

  3.   

    改进,刷新的时候直接jTree1.updateUI()就行了,都不用去还原先前的选择支的.
    重来个按钮事件处理过程:
            jButton1.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree1.getSelectionPath().getLastPathComponent();
                    //改名
                    node.setUserObject("123");
                    //刷新
                    jTree1.updateUI();
                }
            });
      

  4.   

    我现在的模块就是一个多语言的选择,你也可以去看看ResourceBundle这个类,这个类可读外面的资源文件,你可以把这些东东用到你的程序中。