Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > User objects в JTree


Автор: blur 6.12.2006, 18:44
Всем привет,
У меня вот такая проблемка:
Я создаю дерево типа этого:
Код

if(!(model instanceof Hashtable)){
            table = new Hashtable();           
            if(model.getClass().isArray()){
                for(int i=0; i<((String[])model).length; i++){
                    file = new FileNode(((String[])model)[i]);
                    table.put(((String[])model)[i], file);
                }
            }           
        }
        else{
            table = (Hashtable)model;
        }
}
view = new Tree(table); //Tree - это мой класс от JTree 

Как мне потом при клике на узле получить то, что является value в Hashtable? 

Код

public class Tree extends JTree implements TreeSelectionListener {

    public void valueChanged(TreeSelectionEvent arg0) {

        FileNode file;
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)getLastSelectedPathComponent();
        if(node == null)
            return;
        Object obj = node.getUserObject();
      
        file = (FileNode)obj;
       
    }

 - Такое не прокатывает  smile 

Автор: SID_M 12.12.2006, 18:32
ValueChanged не вызывается при нажатии кнопки мыши на узле.

Тебе нужно обрабатывать MouseDown и внутри получать узел дерева по 

Код

     Tree1.getSelectionPath();



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)