2013-04-17 1 views
1

Мне нужно привязать Hashmap к MutableTreeNode, чтобы я мог отобразить это в JTree.Binding HashMap <String, String> to MutableTreeNode

У меня есть следующий код:

static Map<String, String> form = new LinkedHashMap<String,String>(); 

Я предполагаю это, как мне нужно реализовать MutableTreeNode. Я просто не знаю, как теперь делать, чтобы получить «форму» ключа в «MutableTreeNode».

public class MyNode implements MutableTreeNode { 

    @Override 
    public Enumeration children() { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public boolean getAllowsChildren() { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public TreeNode getChildAt(int childIndex) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public int getChildCount() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public int getIndex(TreeNode node) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public TreeNode getParent() { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public boolean isLeaf() { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public void insert(MutableTreeNode arg0, int arg1) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void remove(int arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void remove(MutableTreeNode arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void removeFromParent() { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void setParent(MutableTreeNode arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void setUserObject(Object arg0) { 
     // TODO Auto-generated method stub 

    } 

После MutableTreeNode правильно показывает правильное Key значение, я хочу, чтобы быть в состоянии сделать:

final JTree tree = new JTree(); 
final DefaultMutableTreeNode CustomNode = new DefaultMutableTreeNode("Custom"); 
DefaultTreeModel tm = new DefaultTreeModel(CustomNode); 
tree.setModel(tm); 

for (String str : form.keySet()) 
     { 
      MyNode nod = new MyNode(str); 
      CustomNode.add(node);   
     } 
tm.reload(); 
+0

Несвязанные: Пожалуйста, изучите соглашения об именах java и придерживайтесь их. – kleopatra

+0

Что значит? – Omid

+0

Что трудно понять в условных обозначениях? – kleopatra

ответ

3

Вы, вероятно, хотите собственную реализацию интерфейса TreeModel. Как отмечено в How to Use Trees: Creating a Data Model,

Интерфейс TreeModel принимает любой вид объекта в качестве узла дерева. Он не требует, чтобы узлы были представлены объектами DefaultMutableTreeNode, или даже эти узлы реализовали интерфейс TreeNode.

Хотя ваш Map<String, String> не является внутренне иерархическим, вы можете получить представление от GenealogyModel упоминавшегося here или FileTreeModel привел here и here.

 Смежные вопросы

  • Нет связанных вопросов^_^