2012-07-13 3 views
1

jtree를 처음 사용했습니다. 동일한 부모를 가진 개별 노드의 고유 ID 또는 값을 가져 오려고합니다.jtree에서 모든 노드의 고유 ID 또는 값을 얻는 방법은 무엇입니까?

나는 valuechanged() 메서드로 시도했지만 모든 노드의 문자열 값만 가져올 수 있습니다.

현재 노드를 특정 노드의 고유 값과 비교하려고합니다. 내가 어떻게 이걸 얻을 수 있니?

나는 분명히하고 있다고 생각합니다.

어떤 가능성이 있습니까?

답변

3

의 TreeNode가의 getParent() 메소드가 사전에

덕분에 ..., 당신은 ==와 함께 반환되는 객체 참조를 비교할 수 있습니다.

개체 ID를 기반으로 고유 ID가 필요한 경우 System.identityHashCode를 고려하십시오. 다음 질문을 참조하십시오. How do you get the "object reference" of an object in java when toString() and hashCode() have been overridden?

+0

그러나 고유 한 값 :

/* CustomUserObjectClass */ public class CustomUserObject implements Serializable { private int Id = 0; private String Title = null; public CustomUserObject(int id, String title) { this.Id = id; this.Title = title; } public CustomUserObject() { } public int getId() { return this.Id; } public String getTitle() { return this.Title; } public void setId(int id) { this.Id = id; } public void setSutTitle(String title) { this.sutTitle = title; } @Override public String toString() { return this.Title; } 

지금 새 노드를 만드는 방법? 도와주세요 .... –

+0

응용 프로그램을 다시 시작한 후에도 값을 동일하게 유지하려면 쉬운 방법이 없습니다.이 논리는 어딘가에 구현해야합니다 (예 : DefaultMutableTreeNode의 userObject 필드). – lbalazscs

0

나는 DefaultMutableTreeNode에 고유 한 ID를 설정하려고 노력하고 있습니다. 한 가지 방법은 견인 속성 ID 및 제목이있는 간단한 CustomUserObject 클래스를 만드는 것입니다. 그런 다음 CustomUserObject 인스턴스를 Node UserObject 속성으로 할당 할 수 있습니다.

트리 구조에 Title 만 표시되도록하려면 CustomUserObject 클래스의 toString() 메서드를 재정의하십시오. 내가 again.How 내 문제를 해결하는 프로젝트를 실행할 때 변경

CustomUserObject uObj = new CustomUserObject(1, "My First Node"); 
DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(uObj); 

uObj = childNode.getUserObject(); 
uObj.getId(); 
uObj.getTitle(); 
관련 문제