Java 更改jtree节点文本运行时

Java 更改jtree节点文本运行时,java,swing,jtree,Java,Swing,Jtree,我正在尝试在JavaSwing中创建JTree,现在我想在运行时更改节点文本 try { int a=1,b=2,c=3; DefaultMutableTreeNode root = new DefaultMutableTreeNode("A"+a); DefaultMutableTreeNode child[]=new DefaultMutableTreeNode[1]; DefaultMutableTreeNode grandChild[]= new DefaultMutableTre

我正在尝试在JavaSwing中创建JTree,现在我想在运行时更改节点文本

try
 {

int a=1,b=2,c=3;
 DefaultMutableTreeNode root =
new DefaultMutableTreeNode("A"+a);
DefaultMutableTreeNode child[]=new DefaultMutableTreeNode[1];
DefaultMutableTreeNode grandChild[]= new DefaultMutableTreeNode[1];

child[0] = new DefaultMutableTreeNode("Central Excise"+b);
  grandChild[0]=new DefaultMutableTreeNode("CE Acts: "+c);
child[0].add(grandChild[0]);
 root.add(child[0]);
tree = new JTree(root);
 }
 catch(Exception ex)

 {
  ex.printStackTrace()
 }

现在,我想稍后讨论如何在子节点和孙子节点中将1动态地、类似地更改为2如果您不使用自定义树模型,那么树的模型就是一个

您需要使用某种比较器遍历树,给定您的DefaultMutableTreeNodegetUserObject()(字符串或其他)以实现所需

根据您的问题和粘贴的代码,您有2个简单选项:

  • 如果您的更改是由单击事件触发的,那么您可以获取选择并从中遍历树
  • 否则你需要从树的根部开始走
成功更改后,您将需要从模型触发事件,该事件将在稍后触发视图的重新绘制(nodesWereInserted等)

希望它能帮到你

这假设您使用的是
DefautltTreeModel

DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
root.setUserObject("My label");
model.nodeChanged(root);