【发布时间】:2014-03-19 12:56:14
【问题描述】:
这是我的 NodeType 类。每当我创建一个新的 jtree 节点时,我都会创建一个 NodeType 的实例
public class NodeType {
private String nodeType ;
public NodeType (String nodeType ) {
this.nodeType = nodeType ;
}
public String getNodeType() {
return this.nodeType ;
}
public void setNodeType (String nodeType) {
this.nodeType = nodeType ;
}
}
我要保存与节点关联的修改对象
btnSave = new JButton("Save");
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
DynamicTree.tree.getLastSelectedPathComponent();
String txt = desc.getTxt() ;
Object nodeInfo = node.getUserObject();
if (node.isLeaf()) {
((NodeType) nodeInfo).setNodeType(txt );
DefaultTreeModel 模型 = (DefaultTreeModel) DynamicTree.tree.getModel();
model.nodeChanged(节点) ;
}
}
});
但是上面的“保存”按钮不起作用
【问题讨论】:
-
你需要通知模型节点有变化。尝试使用
DefaultTreeModel#nodeChanged -
我添加了
DefaultTreeModel model = (DefaultTreeModel) DynamicTree.tree.getModel(); model.nodeChanged(node) ;,但仍然没有变化 -
好吧,我不知道你在做什么,但我的例子有效。
DynamicTree.tree看起来很像static参考。您确定您引用的值与屏幕上的值相同吗?