powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTree создание нового узла
6 сообщений из 6, страница 1 из 1
JTree создание нового узла
    #33895921
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Снова JTree. Требуется при щекчке по узлу динамически создать ему дочерние элементы. Делаю как в книжке:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
 if  (selectedNode ==  null )  return ;
DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
 if  (parent ==  null )  return ;
DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode("New");
 int  selectedIndex = parent.getIndex(selectedNode);
model.insertNodeInto(newNode,parent,selectedIndex +  1 );

TreeNode [] nodes = model.getPathToRoot(newNode);
TreePath path =  new  TreePath(nodes);
jTree1.scrollPathToVisible(path);
не работает, выдает кучу ошибок. Подскажите, что не так? Может есть другой способ выполнить эту задачу? Заранее всем спасибо.
...
Рейтинг: 0 / 0
JTree создание нового узла
    #33896688
Sherst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В свое время я делал приблизительно так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
// DefaultTreeModel model;
// DefaultMutableTreeNode selectNode1;

model=(DefaultTreeModel)tree.getModel();
    //Добавляем события по прослушиванию сворачивания/разворачивания узлов дерева
    tree.addTreeWillExpandListener( new  TreeWillExpandListener() {
      //Событие происходит при сворачивании ветки дерева
       public   void  treeWillCollapse(TreeExpansionEvent event1){
      }

      //Событие происходит при раскрывании ветки дерева
       public   void  treeWillExpand(TreeExpansionEvent event2){
        //Необходимо получить путь к раскрываемому элементу
        TreePath tp= event2.getPath();
        selectNode1=(DefaultMutableTreeNode)tp.getLastPathComponent();        
	 for  ( int  i= 0 ; i <  5 ; i++) {
          DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode(i);
          model.insertNodeInto(newNode, selNode1, selNode1.getChildCount());
        }
       }
      }
    });
...
Рейтинг: 0 / 0
JTree создание нового узла
    #33896716
Sherst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не проверял будет ли работать такая строка См. цикл for (int i = 0; i < 5; i++)
Код: plaintext
1.
DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode(i);

В любом случае можно заменить
Код: plaintext
1.
DefaultMutableTreeNode newNode =  new  DefaultMutableTreeNode("String"+i);
...
Рейтинг: 0 / 0
JTree создание нового узла
    #33896910
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, попробую =)
...
Рейтинг: 0 / 0
JTree создание нового узла
    #33897305
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sherst
Все получилось ))) Спасибо
...
Рейтинг: 0 / 0
JTree создание нового узла
    #33897719
Sherst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На здоровье :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JTree создание нового узла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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