powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в jTree добавить узлы?
17 сообщений из 17, страница 1 из 1
Как в jTree добавить узлы?
    #34012337
jTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в jTree добавить узлы?
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34012445
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DefaultMutableTreeNode perent=new DefaultMutableTreeNode();
DefaultMutableTreeNode st = new DefaultMutableTreeNode("zzz");
perent.add(st);
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34012485
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
Как в jTree добавить узлы?
    #34012514
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как в jTree добавить узлы?
    #34012543
jTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что сделать, чтобы на это не ругалось?

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

Код: plaintext
org.jdesktop.layout.GroupLayout
Не найден адрес класса. У меня нет таких...
подключить библиотеку нужно соответствующую,скачать джар и прикрутить к своей IDE
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34012598
jTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А адрес не подскажете?
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34012623
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jTreeА адрес не подскажете?
вроде здесь https://jdic.dev.java.net/
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34012656
jTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то накачал, да не то...))
Качал с http://]https://jdic.dev.java.net/servlets/ProjectDocumentList?folderID=5497
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34012689
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
Как в jTree добавить узлы?
    #34012748
jTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, разобрался
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34084765
Фотография Alex-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну отмачили то кода, да все гораздо проще
Возьмем скажем кусочек 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
Как в jTree добавить узлы?
    #34364528
Фотография BusyMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как удалять узлы?
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34364980
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как в jTree добавить узлы?
    #34366926
Фотография BusyMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой.... Искреннее большое спасибо!
...
Рейтинг: 0 / 0
Как в jTree добавить узлы?
    #34372252
Фотография BusyMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ruslan.Isbarov
Код: plaintext
1.
2.
3.
4.
5.
6.
// Удаление с помощью методов объекта, представляющего узел         
root.remove( 0 );     // Удаление по индексу
root.remove(nodeB); // Удаление по ссылке на объект

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


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