을 구현 중이며 valueForPathChanged
을 제외한 모든 메서드를 구현했습니다.TreeModel 인터페이스 (Swing)에서 valueForPathChanged 메서드
내 경우에는 값이 프로그래밍 방식으로 변경되지 않습니다.
왜 TreeModel 인터페이스에이 방법이 포함되어 있습니까? 어떠한 상황에서도 JTree
에 의해 사용 되었습니까, 아니면 구현되지 않은 채로해도됩니까?
참조 용 코드입니다. 나는 valueForPathChanged
이 JTree에 의해 필요한지 여부를 단지 걱정 :
valueForPathChanged()
방법을 구현하는 데 필요한 동안
class ParamsTreeModel implements TreeModel {
private final TreeRoot root;
private final List<TreeModelListener> listeners = new ArrayList<TreeModelListener>();
ParamsTreeModel(TreeRoot root) {
this.root = root;
}
@Override
public void addTreeModelListener(TreeModelListener l) {
listeners.add(l);
}
@Override
public Object getChild(Object parent, int index) {
if(parent instanceof Param) return null;
if(structuredMap.containsKey(parent)) {
return structuredMap.get(parent).get(index);
}
// Root
return partNames.get(index);
}
@Override
public int getChildCount(Object parent) {
if(parent instanceof Param) return 0;
if(parent instanceof TreeRoot) return partNames.size();
return structuredMap.get(parent).size();
}
@Override
public int getIndexOfChild(Object parent, Object child) {
if(parent instanceof TreeRoot) return partNames.indexOf(child);
return structuredMap.get(parent).indexOf(child);
}
@Override
public Object getRoot() {
return root;
}
@Override
public boolean isLeaf(Object node) {
return (node instanceof Param);
}
@Override
public void removeTreeModelListener(TreeModelListener l) {
listeners.remove(l);
}
@Override
public void valueForPathChanged(TreePath path, Object newValue) {
// TODO Auto-generated method stub
}
}