본문 바로가기

Programming/JAVA

[Swing] JTree의 이벤트들



1.

addTreeSelectionListener ( TreeSelectionListener listen)

//트리 노드가 선택 되었을때 일어나는 이벤트

 

2.

addTreeWillExpandListener ( TreeWillExpandListener listen)

//트리 노드가 펼쳐졌을떄 일어나는 이벤트

 

 

1. addTreeSelectionListener ( TreeSelectionListener listen) 

 

public void valueChanged(TreeSelectionEvent e) { < --이 매서드 Override 해야함.

 

TreeSelectionEvent의 매소드 TreePath getPath();

리턴받은 트리패스는 toString 하면 해당 트리의 요소들을

 

[ROOT명, 자식, 손자, 나] 와같이 출력한다.

 

TreePath.getLastPathComponent() 메소드는

 

Object 형태로 리턴 하지만 이걸 DefaultMutableTreeNode로 변환이 가능하다!

 

이제부턴 뭐 DefaultMutableTreeNode를 쓰는거지뭐...

 

 

 

2. addTreeWillExpandListener ( TreeWillExpandListener listen)

 

@Override!!

 public void treeWillExpand(TreeExpansionEvent event)
   throws ExpandVetoException {

 

TreePath path = event.getPath();  //완전 단골 손님이네 다를것도 없네 씨퐁...

 

 

 

3. 아주 중요한 결론 

 결국 이거나 저거나

 

TreePath path = event.getPath()          //써서 TreePath 받고

( DefaultMutableTreeNode ) path.getLastPathComponent() 

// 로 결국 원래 노드화 시킴.

//근데 중요한건 이렇게 만들ㅇ진 노드는 원본노드의 해당 패스와 동일한 객체가 된다.

//즉 여기다가 밑에 뭘 달면 원본도 바뀌는 신기한 이야기...