Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в jTree добавить узлы? / 17 сообщений из 17, страница 1 из 1
26.09.2006, 12:52:20
    #34012337
jTree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
Как в jTree добавить узлы?
...
Рейтинг: 0 / 0
26.09.2006, 13:15:45
    #34012445
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
DefaultMutableTreeNode perent=new DefaultMutableTreeNode();
DefaultMutableTreeNode st = new DefaultMutableTreeNode("zzz");
perent.add(st);
...
Рейтинг: 0 / 0
26.09.2006, 13:22:05
    #34012485
fjord
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
Узлы нужно добавлять не в само дерево, а в его модель. Вот пример сделанный в NetBeans:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
 package  treetest1;

 import  javax.swing.tree.*;

/*
 * TreeFrame.java
 *
 * Created on 2 Сентябрь 2006 г., 12:11
 */

/**
 *
 * @author  Alexander
 */
 public   class  TreeFrame  extends  javax.swing.JFrame {
    
    /** Creates new form TreeFrame */
     public  TreeFrame() {
        initComponents();
        setDefaultTree();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
     private   void  initComponents() {
        jScrollPane1 =  new  javax.swing.JScrollPane();
        jTree1 =  new  javax.swing.JTree();
        jButton1 =  new  javax.swing.JButton();
        jButton2 =  new  javax.swing.JButton();
        jButton3 =  new  javax.swing.JButton();
        jButton4 =  new  javax.swing.JButton();
        jButton5 =  new  javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jScrollPane1.setViewportView(jTree1);

        jButton1.setText("New leaf");
        jButton1.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                newLeaf(evt);
            }
        });

        jButton2.setText("Delete");
        jButton2.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                deleteItem(evt);
            }
        });

        jButton3.setText("Delete all");
        jButton3.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                deleteAll(evt);
            }
        });

        jButton4.setText("Default");
        jButton4.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                setDefaultTreeBut(evt);
            }
        });

        jButton5.setText("New folder");
        jButton5.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                newFolder(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout =  new  org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,  576 ,  Short .MAX_VALUE)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .add(jButton5)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jButton1)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,  73 , org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jButton3)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED,  161 ,  Short .MAX_VALUE)
                .add(jButton4)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,  403 ,  Short .MAX_VALUE)
                .add( 19 ,  19 ,  19 )
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jButton4)
                    .add(jButton2)
                    .add(jButton3)
                    .add(jButton5)
                    .add(jButton1))
                .addContainerGap())
        );
        pack();
    }// </editor-fold>                        
        /**
         * Удаление всех узов в выбраной ветке.
         */
     private   void  deleteAll(java.awt.event.ActionEvent evt) {                           
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode ==  null )  return ;
        
        //DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
         int  childs = selectedNode.getChildCount();
        
         for  ( int  i =  0 ; i < childs; i++)
            model.removeNodeFromParent((DefaultMutableTreeNode) selectedNode.getChildAt( 0 ));
        
            //model.(selectedNode);
    }                          

     private   void  setDefaultTreeBut(java.awt.event.ActionEvent evt) {                                   
        setDefaultTree();
    }                                  
    /**
     * Добавление нового листа в указанную
     * ветку дерева.
     */
     private   void  newLeaf(java.awt.event.ActionEvent evt) {                         
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode ==  null )  return ;
        
        DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();

         if  (parent ==  null )  return ;
        
        DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode("Новый лист");
        newNode.setAllowsChildren(false);
         int  selectedIndex = parent.getIndex(selectedNode);
        model.insertNodeInto(newNode, parent, selectedIndex +  1 );
        
        // Отображение нового узла.
        TreeNode [] nodes = model.getPathToRoot(newNode);
        TreePath path =  new  TreePath(nodes);
        jTree1.scrollPathToVisible(path);
    }                        
    /** 
     * Добавление новой папки в указанную
     * ветку дерева.
     */
     private   void  newFolder(java.awt.event.ActionEvent evt) {                           
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode ==  null )  return ;
        
        DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
        
         if  (parent ==  null )  return ;
        
        DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode("Новая папка");
         int  selectedIndex = parent.getIndex(selectedNode);
        model.insertNodeInto(newNode, parent, selectedIndex +  1 );
        
        // Отображение нового узла.
        TreeNode [] nodes = model.getPathToRoot(newNode);
        TreePath path =  new  TreePath(nodes);
        jTree1.scrollPathToVisible(path);
    }                          
    /**
     * Удаление выделеного узла.
     */
     private   void  deleteItem(java.awt.event.ActionEvent evt) {                            
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode !=  null  && selectedNode.getParent() !=  null )
            model.removeNodeFromParent(selectedNode);
    }                           
    
    /**
     * @param args the command line arguments
     */
     public   static   void  main(String args[]) {
        java.awt.EventQueue.invokeLater( new  Runnable() {
             public   void  run() {
                 new  TreeFrame().setVisible(true);
            }
        });
    }
    
    /**
     * Установка структуры дерева по умолчанию
     */
     public   void  setDefaultTree(){
        // Корневой узел
        DefaultMutableTreeNode root =  new  DefaultMutableTreeNode("Дерево");
         for  ( int  i =  1 ; i <  4 ; i++){
            // Содержимое корневого узла 
            DefaultMutableTreeNode folder =  new  DefaultMutableTreeNode("Узел" + i);
            root.add(folder);
             for  ( int  j =  1 ; j <  7 ; j++){
                // Содержимое папок корневого узла
                DefaultMutableTreeNode leaf =  new  DefaultMutableTreeNode("Лист" + j);
                leaf.setAllowsChildren(false);
                folder.add(leaf);
            }
        }
        model =  new  DefaultTreeModel(root, true);
        jTree1.setModel(model);
    }
    
     private  DefaultTreeModel model;
    // Variables declaration - do not modify                     
     private  javax.swing.JButton jButton1;
     private  javax.swing.JButton jButton2;
     private  javax.swing.JButton jButton3;
     private  javax.swing.JButton jButton4;
     private  javax.swing.JButton jButton5;
     private  javax.swing.JScrollPane jScrollPane1;
     private  javax.swing.JTree jTree1;
    // End of variables declaration                   
    
}
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 package  treetest1;

/**
 *
 * @author Alexander
 */
 public   class  Main {
    
    /** Creates a new instance of Main */
     public  Main() {
    }
    
    /**
     * @param args the command line arguments
     */
     public   static   void  main(String[] args) {
         new  TreeFrame().setVisible(true);
    }
    
}
Код мягко говоря несовершенен =) но как пример пойдет.
...
Рейтинг: 0 / 0
26.09.2006, 13:27:15
    #34012514
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
fjordУзлы нужно добавлять не в само дерево, а в его модель. Вот пример сделанный в NetBeans:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
 package  treetest1;

 import  javax.swing.tree.*;

/*
 * TreeFrame.java
 *
 * Created on 2 Сентябрь 2006 г., 12:11
 */

/**
 *
 * @author  Alexander
 */
 public   class  TreeFrame  extends  javax.swing.JFrame {
    
    /** Creates new form TreeFrame */
     public  TreeFrame() {
        initComponents();
        setDefaultTree();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
     private   void  initComponents() {
        jScrollPane1 =  new  javax.swing.JScrollPane();
        jTree1 =  new  javax.swing.JTree();
        jButton1 =  new  javax.swing.JButton();
        jButton2 =  new  javax.swing.JButton();
        jButton3 =  new  javax.swing.JButton();
        jButton4 =  new  javax.swing.JButton();
        jButton5 =  new  javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jScrollPane1.setViewportView(jTree1);

        jButton1.setText("New leaf");
        jButton1.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                newLeaf(evt);
            }
        });

        jButton2.setText("Delete");
        jButton2.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                deleteItem(evt);
            }
        });

        jButton3.setText("Delete all");
        jButton3.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                deleteAll(evt);
            }
        });

        jButton4.setText("Default");
        jButton4.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                setDefaultTreeBut(evt);
            }
        });

        jButton5.setText("New folder");
        jButton5.addActionListener( new  java.awt.event.ActionListener() {
             public   void  actionPerformed(java.awt.event.ActionEvent evt) {
                newFolder(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout =  new  org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,  576 ,  Short .MAX_VALUE)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .add(jButton5)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jButton1)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,  73 , org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jButton3)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED,  161 ,  Short .MAX_VALUE)
                .add(jButton4)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,  403 ,  Short .MAX_VALUE)
                .add( 19 ,  19 ,  19 )
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jButton4)
                    .add(jButton2)
                    .add(jButton3)
                    .add(jButton5)
                    .add(jButton1))
                .addContainerGap())
        );
        pack();
    }// </editor-fold>                        
        /**
         * Удаление всех узов в выбраной ветке.
         */
     private   void  deleteAll(java.awt.event.ActionEvent evt) {                           
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode ==  null )  return ;
        
        //DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
         int  childs = selectedNode.getChildCount();
        
         for  ( int  i =  0 ; i < childs; i++)
            model.removeNodeFromParent((DefaultMutableTreeNode) selectedNode.getChildAt( 0 ));
        
            //model.(selectedNode);
    }                          

     private   void  setDefaultTreeBut(java.awt.event.ActionEvent evt) {                                   
        setDefaultTree();
    }                                  
    /**
     * Добавление нового листа в указанную
     * ветку дерева.
     */
     private   void  newLeaf(java.awt.event.ActionEvent evt) {                         
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode ==  null )  return ;
        
        DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();

         if  (parent ==  null )  return ;
        
        DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode("Новый лист");
        newNode.setAllowsChildren(false);
         int  selectedIndex = parent.getIndex(selectedNode);
        model.insertNodeInto(newNode, parent, selectedIndex +  1 );
        
        // Отображение нового узла.
        TreeNode [] nodes = model.getPathToRoot(newNode);
        TreePath path =  new  TreePath(nodes);
        jTree1.scrollPathToVisible(path);
    }                        
    /** 
     * Добавление новой папки в указанную
     * ветку дерева.
     */
     private   void  newFolder(java.awt.event.ActionEvent evt) {                           
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode ==  null )  return ;
        
        DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
        
         if  (parent ==  null )  return ;
        
        DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode("Новая папка");
         int  selectedIndex = parent.getIndex(selectedNode);
        model.insertNodeInto(newNode, parent, selectedIndex +  1 );
        
        // Отображение нового узла.
        TreeNode [] nodes = model.getPathToRoot(newNode);
        TreePath path =  new  TreePath(nodes);
        jTree1.scrollPathToVisible(path);
    }                          
    /**
     * Удаление выделеного узла.
     */
     private   void  deleteItem(java.awt.event.ActionEvent evt) {                            
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        
         if  (selectedNode !=  null  && selectedNode.getParent() !=  null )
            model.removeNodeFromParent(selectedNode);
    }                           
    
    /**
     * @param args the command line arguments
     */
     public   static   void  main(String args[]) {
        java.awt.EventQueue.invokeLater( new  Runnable() {
             public   void  run() {
                 new  TreeFrame().setVisible(true);
            }
        });
    }
    
    /**
     * Установка структуры дерева по умолчанию
     */
     public   void  setDefaultTree(){
        // Корневой узел
        DefaultMutableTreeNode root =  new  DefaultMutableTreeNode("Дерево");
         for  ( int  i =  1 ; i <  4 ; i++){
            // Содержимое корневого узла 
            DefaultMutableTreeNode folder =  new  DefaultMutableTreeNode("Узел" + i);
            root.add(folder);
             for  ( int  j =  1 ; j <  7 ; j++){
                // Содержимое папок корневого узла
                DefaultMutableTreeNode leaf =  new  DefaultMutableTreeNode("Лист" + j);
                leaf.setAllowsChildren(false);
                folder.add(leaf);
            }
        }
        model =  new  DefaultTreeModel(root, true);
        jTree1.setModel(model);
    }
    
     private  DefaultTreeModel model;
    // Variables declaration - do not modify                     
     private  javax.swing.JButton jButton1;
     private  javax.swing.JButton jButton2;
     private  javax.swing.JButton jButton3;
     private  javax.swing.JButton jButton4;
     private  javax.swing.JButton jButton5;
     private  javax.swing.JScrollPane jScrollPane1;
     private  javax.swing.JTree jTree1;
    // End of variables declaration                   
    
}
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 package  treetest1;

/**
 *
 * @author Alexander
 */
 public   class  Main {
    
    /** Creates a new instance of Main */
     public  Main() {
    }
    
    /**
     * @param args the command line arguments
     */
     public   static   void  main(String[] args) {
         new  TreeFrame().setVisible(true);
    }
    
}
Код мягко говоря несовершенен =) но как пример пойдет.
если на то пошло,то лучше сделать класс,который будет имплементить модель дерева,а дальше эту модель устанвливать в ДЖиТри
...
Рейтинг: 0 / 0
26.09.2006, 13:31:52
    #34012543
jTree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
А что сделать, чтобы на это не ругалось?

Код: plaintext
org.jdesktop.layout.GroupLayout
Не найден адрес класса. У меня нет таких...
...
Рейтинг: 0 / 0
26.09.2006, 13:33:14
    #34012551
fjord
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
если на то пошло,то лучше сделать класс,который будет имплементить модель дерева,а дальше эту модель устанвливать в ДЖиТри
Согласен. Я привел просто пример.
...
Рейтинг: 0 / 0
26.09.2006, 13:39:32
    #34012571
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
jTreeА что сделать, чтобы на это не ругалось?

Код: plaintext
org.jdesktop.layout.GroupLayout
Не найден адрес класса. У меня нет таких...
подключить библиотеку нужно соответствующую,скачать джар и прикрутить к своей IDE
...
Рейтинг: 0 / 0
26.09.2006, 13:46:06
    #34012598
jTree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
А адрес не подскажете?
...
Рейтинг: 0 / 0
26.09.2006, 13:50:44
    #34012623
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
jTreeА адрес не подскажете?
вроде здесь https://jdic.dev.java.net/
...
Рейтинг: 0 / 0
26.09.2006, 13:58:20
    #34012656
jTree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
Что-то накачал, да не то...))
Качал с http://]https://jdic.dev.java.net/servlets/ProjectDocumentList?folderID=5497
...
Рейтинг: 0 / 0
26.09.2006, 14:04:00
    #34012689
jTree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
И всё равно, тот код, что вы превили, очень уж сложен, чтобы реализовать лишь статическое "хранение" в дереве трех узлов.

Добавляю так
Код: plaintext
1.
2.
3.
4.
5.
6.
  DefaultTreeModel model = (DefaultTreeModel)jTree1.getModel();
   int  startRow =  0 ;
  String prefix = "J";
  TreePath path = jTree1.getNextMatch(prefix, startRow, Position.Bias.Forward);
  MutableTreeNode node = (MutableTreeNode)path.getLastPathComponent();
  MutableTreeNode newNode =  new  DefaultMutableTreeNode("green");
  model.insertNodeInto(newNode, node, node.getChildCount());
Но остаются узлы от старой модели.
...
Рейтинг: 0 / 0
26.09.2006, 14:16:42
    #34012748
jTree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
Спасибо, разобрался
...
Рейтинг: 0 / 0
26.10.2006, 17:48:44
    #34084765
Alex-2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
Ну отмачили то кода, да все гораздо проще
Возьмем скажем кусочек WebDAVa и вставим в дерево...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
     public  DefaultMutableTreeNode buildTree(String aPath) {
      WebdavResource resource =  null ;
      WebdavResources childResources =  null ;
         try  {
            resource =  new  WebdavResource(aPath,
                                           new 
                                          UsernamePasswordCredentials("tomcat",
                    "tomcat"));

         childResources = resource.getChildResources();

        }  catch  (HttpException ex) {
        }  catch  (IOException ex) {
            ex.printStackTrace();
        }
        DefaultMutableTreeNode root =  null ;
        WebdavResource[] ws =  null ;
        root =  new  DefaultMutableTreeNode(resource.getDisplayName());
            ws = childResources.listResources();
         for  ( int  i =  0 ; i < ws.length ; i++) {
            WebdavResource item = ws[i];
             if  (item.isCollection()) {
                root.add(buildTree(aPath+item.getDisplayName()+ "/"));
            }  else  {
                root.add( new  DefaultMutableTreeNode(ws[i].getDisplayName()));
            }
        }
         return  root;
    }
Moлчaливый Bob
...
Рейтинг: 0 / 0
01.03.2007, 17:29:20
    #34364528
BusyMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
А как удалять узлы?
...
Рейтинг: 0 / 0
01.03.2007, 20:33:21
    #34364980
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
BusyManА как удалять узлы?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
DefaultMutableTreeNode root =  new  DefaultMutableTreeNode("Root");

DefaultMutableTreeNode nodeA =  new  DefaultMutableTreeNode("Node A");
DefaultMutableTreeNode nodeB =  new  DefaultMutableTreeNode("Node B");
DefaultMutableTreeNode nodeC =  new  DefaultMutableTreeNode("Node C");
DefaultMutableTreeNode nodeD =  new  DefaultMutableTreeNode("Node D");

 for  ( int  i =  0 ; i <  10 ; i++) {
    nodeA.add( new  DefaultMutableTreeNode("Node " + i));
    nodeB.add( new  DefaultMutableTreeNode("Node " + i));
    nodeC.add( new  DefaultMutableTreeNode("Node " + i));
    nodeD.add( new  DefaultMutableTreeNode("Node " + i));
}

root.add(nodeA);
root.add(nodeB);
root.add(nodeC);
root.add(nodeD);

DefaultTreeModel treeModel =  new  DefaultTreeModel(root);

JTree tree =  new  JTree(treeModel);

// Удаление с помощью методов объекта, представляющего узел         
root.remove( 0 );     // Удаление по индексу
root.remove(nodeB); // Удаление по ссылке на объект

// Удаление с помощью методов модели        
treeModel.removeNodeFromParent(nodeC);

После удаления с помощью методов объекта, представляющего узлел, необходимо оповестить об этом модель:

Код: plaintext
1.
treeModel.nodesWereRemoved(...);
...
Рейтинг: 0 / 0
02.03.2007, 14:39:25
    #34366926
BusyMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
Ой.... Искреннее большое спасибо!
...
Рейтинг: 0 / 0
05.03.2007, 18:01:31
    #34372252
BusyMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в jTree добавить узлы?
Ruslan.Isbarov
Код: plaintext
1.
2.
3.
4.
5.
6.
// Удаление с помощью методов объекта, представляющего узел         
root.remove( 0 );     // Удаление по индексу
root.remove(nodeB); // Удаление по ссылке на объект

// Удаление с помощью методов модели        
treeModel.removeNodeFromParent(nodeC);
 
Пытался попробовать... Но когда приступил к делу понял, что у меня же никаких ни узлов, ни моделей нету. Добавил дерево в дизайнере - а он уже с каким-то мусором. Как его убрать то?))))))))))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в jTree добавить узлы? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]