2014-07-14 8 views
1

나중에 편집 할 수있는 JTree를 만들려고합니다. 지금까지 예상대로 루트 노드 트리를 생성하는 다음 코드가 있습니다. 그러나 단추를 클릭하면 (동작 수신기가 트리거 됨) 루트 노드 아래에 다른 노드가 추가됩니다. 내가하는 일은 루트 노드를 수정하는 것입니다. 이 작업을 수행 할 여지가 있습니까? 나는 다양한 주장을 바꾸려고 노력했다. 0 ~ -1, (MutableTreeNode) treeModel.getRoot() ~ (MutableTreeNode) treeModel 등JTree Edit Root Node?

감사합니다.

//Set first as Defualt Node 
final DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("You must log in first."); 
final DefaultTreeModel treeModel = new DefaultTreeModel(rootNode); 
tree_folderList = new JTree(treeModel); 
tree_folderList.setEditable(true); 
tree_folderList.setBorder(new BevelBorder(BevelBorder.LOWERED)); 
treescrollPane = new JScrollPane(tree_folderList); 

tree_folderList.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 
tree_folderList.setShowsRootHandles(true); 
//treeModel.addTreeModelListener(new MyTreeModelListener());   

ActionListener btn_RefreshMail_Listener = new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
     if (sessionkey == null || sessionkey.contains("Invalid")) { 
      treeModel.insertNodeInto(new DefaultMutableTreeNode("Must be logged in first."), (MutableTreeNode) treeModel.getRoot(), 0); 
     } 
     else { 
      //txt_folderList.setText(DMD.getInbox(sessionkey)); 
      treeModel.insertNodeInto(new DefaultMutableTreeNode("Logged in."), rootNode, 0); 
     } 
    } 
}; 
+0

은에서 코드 파크 같은 문제이다 나무를 사용하는 방법 공식 오라클 튜토리얼 - 동적으로 변경 트리 (http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html# 동적) – mKorbel

+0

예, 그 튜토리얼을 따라했습니다. 그러나 루트 노드를 설정하는 방법은 다루지 않습니다. – Kyle

답변

1

다음 코드를 사용하고 있습니다. 나는 이것이 다른 누군가가 같은 문제로 고군분투하는 데 도움이되기를 바랍니다. 비밀은 새로운 defaultnode를 생성 한 다음 setroot 메소드와 함께 사용하는 것이 었습니다.

ActionListener btn_RefreshMail_Listener = new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
     if (sessionkey == null || sessionkey.contains("Invalid")) { 
      DefaultMutableTreeNode rootNode2 = new DefaultMutableTreeNode("You must log in first."); 
      treeModel.setRoot(rootNode2); 
      treeModel.reload(); 
     } 
     else { 
      //txt_folderList.setText(DMD.getInbox(sessionkey)); 
      DefaultMutableTreeNode rootNode2 = new DefaultMutableTreeNode("Logged in."); 
      treeModel.setRoot(rootNode2); 
      treeModel.reload(); 
     } 
    } 
};