-1
私は編集可能なJTreeを作成し、TreeModelListenerを追加します。編集後にすべてのノードの原点値を記録する方法を知りたいツリーノードが編集によって変更された後に元の値を取得する方法
私は編集可能なJTreeを作成し、TreeModelListenerを追加します。編集後にすべてのノードの原点値を記録する方法を知りたいツリーノードが編集によって変更された後に元の値を取得する方法
@MadProgrammerと@Sergiy Medvynskyyの助けを借りて、私はこれを達成しました。 DefaultTreeModelのvalueForPathChanged(TreePath path、Object newValue)をオーバーライドします。パスを使用して編集済みのノードを見つけ、次にそのオブジェクトのgetUserObjectをoldValueとします。キーポイントはsuper.valueForPathChanged(path、newValue) ; oldValueを取得できるようにします。 サンプル:
typelTreeModel = new DefaultTreeModel(typeTreeRoot){
@Override
public void valueForPathChanged(TreePath path, Object newValue) {
DefaultMutableTreeNode editNode = (DefaultMutableTreeNode) path.getLastPathComponent();
int level = editNode.getLevel();
if(level == 2){
String oldValue = (String) editNode.getUserObject();
System.out.println(oldValue);
}
super.valueForPathChanged(path, newValue);
}
};
あなたは私の詳細を与える値がString.Couldある – MadProgrammer
値のキャッシュを維持? – lution
@lution [パターンメメント](https://sourcemaking.com/design_patterns/memento) –