은 노드의 표시 문자열을 선택적으로 변경할 수있는 DefaultMutableTreeNode
의 재정의로 채워집니다. 아래 코드에서 볼 수 있듯이, 내 양식에서는 별도의 클래스에 트리를 작성한 다음 주 데이터 유형에 대한 래퍼 클래스를 통해 새 노드를 트리에 채 웁니다. 여기에 새로 재정의 된 DefaultMutableTreeNode
을 새로 작성하여 그 노드에 자식을 추가 한 다음 (각 AccessPoint
은 여러 자식 노드가있는 노드로 표시됨) 나중에 UI에 사용할 수 있도록 저장합니다.TreeModel이 새 노드를 추가 할 때 JTree가 업데이트되지 않는 이유는 무엇입니까?
처음으로이 방법으로 노드를 추가하면 멋지게 작동합니다. 다음 코드로 추가 된 모든 후속 노드는 사실 DefaultTreeModel
에 저장되지만 JTree
은 새 노드로 업데이트되지 않습니다.
첫 번째 자녀를 추가 한 후 JTree
이 채워지지 않는 이유는 무엇입니까?
private void populateAccessPointTreeModel(AccessPointDataWrapper wrapper) {
//the pre-created DefaultMutableTreeNode subclass instance is
// stored in the wrapper
DefaultMutableTreeNode accessPointNode =
wrapper.getAccessPointTreeNode();
//this line updates the accessPointTree with the new node (I've looked at the
// value in debug mode, and it does in fact add the node
((DefaultMutableTreeNode) accessPointTree.getRoot()).add(accessPointNode);
//unrelated logic happens down here...
}
필요한 경우 노드를 만드는 코드를 포함 할 수 있지만 문제는 아닌 것 같습니다.
구성 요소 또는 그 부모를 다시 페인트 해 보셨습니까? – Bitmap