2014-07-24 6 views
0

DefaultMutableTreeNode에 isRoot() 함수가있는 이유는 무엇입니까? DefaultMutableTreeNode를 확장하는 클래스가 있기 때문에 물어보십시오. 이 클래스의 단일 인스턴스를 여러 다른 JTree 객체에서 사용할 수 있기를 원합니다. 그러나 isRoot()는 트리 객체 자체에 질문해야하는 질문입니다. 누구든지이 기능이 트리 수준 대신 노드 수준에 존재하는 이유에 대한 통찰력을 제공 할 수 있습니까?DefaultMutableTreeNode의 isRoot()

+0

노드가 루트인지 여부를 명시 적으로 확인하기 때문에 노드 레벨에 존재해야합니다. if가 루트인지 아닌지를 결정하기 위해 노드를 인수로 전달해야하는 외부 메소드에 의존하는 대신. – gtgaxiola

+0

글쎄, 내 질문에 더 이상, 노드가 한 트리에서 루트 아니지만 다른 트리에서 루트 경우 어떻게됩니까? – user3058135

+1

그러면 두 개의 별도 트리에서 노드를 공유하여 프로그래밍 버그를 성공적으로 만들었습니다. – Kayaman

답변

0

트리 개체는 트리의 루트 일 수 없습니다. JTree 객체는 노드가 아닙니다.

DefaultMutableTreeNode는 트리를 순회적으로 순회하도록 설계되었습니다. 트리를 처리하는 재귀 적 메소드는 한 번에 하나의 노드 (및 후속 노드)에만 액세스 할 수 있기 때문에 메소드가 트리의 루트를 구별하는 유일한 방법은 노드가 트리의 루트를 구별하지 못하게하는 것입니다 나무의 근원이다.