2010-01-18 2 views
3

나는 트리 테이블을 생성하기 위해 넷빈즈 개요 모델을 사용하고는,이 기술은 here 설명 :추가하는 방법 NetBeans 개요에 TreeModelListener를 추가 하시겠습니까?

모든 친절하고 깨끗한 외모와 지금은 모델의 변화를 듣고 내 모델에 TreeModelListener를 추가하려면 :

모든 것이 예상대로 작동하지만 내 문제는 내 자신의 TreeModel 클래스를 작성한 것이므로 분명히 내 addTreeModelListener 메서드를 작성해야한다는 것을 의미하지만 어떻게해야합니까?

public class MyTreeModel implements TreeModel { 

    private MyNode root; 

    public MyTreeModel(SdbNode root) { 
     this.root = root; 
    } 

    @Override 
    public void addTreeModelListener(TreeModelListener l) { 
     //TODO: 
    } 

    //... 
} 
+0

를 호출하는 최후의 수단에 변화를 구현해야합니다 NetBeans 개요에서 노드 제거를 구현 한 방법을 게시 할 수 있습니까? – RickInLosAngeles

답변

1

javax.swing.event.EventListenerList은 무거운의 대부분을 처리합니다. add, removegetListeners 메서드에 대한 클래스 매개 변수를 사용하면 모든 수신기를 하나의 목록에 저장 한 다음 원하는 유형의 하위 집합 만 추출 할 수 있습니다.

참고 : 클래스 매개 변수는 인터페이스의 클래스는 구현 아닌 클래스입니다.

그것은 기본적으로 다음과 같습니다

private EventListenerList listeners = null; 

    public void addTreeModelListener(TreeModelListener l) { 
     if (l == null) 
      return; 
     if (listeners == null) 
      listeners = new EventListenerList(); 
     listeners.add(TreeModelListener.class, l); 
    } 

    public void removeTreeModelListener(TreeModelListener l) { 
     if (l == null) 
      return; 
     if (listeners == null) 
      return; 
     listeners.remove(TreeModelListener.class, l); 
    } 

    private void fireTreeStructureChanged(TreeModelEvent e) { 
     if (e == null) 
      return; 
     if (listeners == null) 
      return; 
     TreeModelListener[] ll = listeners.getListeners(TreeModelListener.class); 
     for(int i = 0; i < ll.length; i++) 
      ll.treeStructureChanged(e); 
    } 

당신이 모델 통지의 나머지 부분을 지원하는 경우는 treeNodesInserted, treeNodesRemoved, 또는 treeNodesChanged

+0

고마워요! 이게 그거야 ... –

관련 문제