Это меняет пользовательский интерфейс, если:
- вы используете модель DefaultTreeModel
- вы фактически меняете UserObject
То естьчто-то вроде этого:
// TheNode is a CustomMutableTreeNode (extending DefaultMutableTreeNode)
// and points to the selected node to alter
String NewNodeName = Dlg.NewNodeName.getText();
if(!NewNodeName.isEmpty()) {
ON.setName(NewNodeName); // ON is the real source data
TheNode.setUserObject(NewNodeName);
((DefaultTreeModel)JSONTree.getModel()).nodeChanged(TheNode);
}
Мне потребовалось довольно много времени, чтобы понять, что изменение исходных данных (в положении ON) ничего не изменило в пользовательском интерфейсе, даже с repaint () ;.Вы действительно должны обновить theUserObject (строку из DefaultMutableTreeNode)
Как только это будет сделано, это самое простое и элегантное решение IMO.