2013-07-05 7 views
0

JTree이 편집 가능으로 설정된 경우 사용자가 DefaultMutableTreeNode을 편집 할 때 텍스트 변경 내용을 듣고 싶습니다. 마찬가지로, 사용자가 노드에 입력하는 상태 레이블을 표시하려고합니다.DefaultMutableTreeNode에 대한 DocumentListener

불행히도 DefaultMutableTreeNode에서 텍스트를 삽입, 삭제 및 수정하는 것과 같은 변경 사항을 청취하기 위해 DefaultMutableTreeNode에 대해 DocumentListener을 찾지 못했습니다.

아무도 나에게이 작업을 수행 할 수 있습니까? 어떤 대답이라도 만족합니다. 미리 감사드립니다.

답변

1

편집기가 준비되면 DocumentListener을 셀 편집기의 editingComponent에 추가 할 수 있습니다. 이 example부터 다음 방법을 MyTreeCellEditor에 추가하십시오.

@Override 
public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) { 
    final Component c = super.getTreeCellEditorComponent(tree, value, isSelected, expanded, leaf, row); 
    JTextField jtf = (JTextField) editingComponent; 
    jtf.getDocument().addDocumentListener(new DocumentListener() { 
     @Override 
     public void insertUpdate(DocumentEvent e) { 
      print(e); 
     } 

     @Override 
     public void removeUpdate(DocumentEvent e) { 
      print(e); 
     } 

     @Override 
     public void changedUpdate(DocumentEvent e) { 
      print(e); 
     } 
     private void print(DocumentEvent e) { 
      System.out.println(e); 
     } 
    }); 
    return c; 
}