Модераторы: LSD, AntonSaburov
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> JTree delete, delete nodes 
:(
    Опции темы
kasya
  Дата 16.4.2005, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.4.2005

Репутация: нет
Всего: нет



Hi!
У меня есть дерево, как при выборе узла мне удалить все дочернии узлы????
В коде надо очистить все дочерние узлы lastselected.

Код

    tree_model = (DefaultTreeModel)tree.getModel();
        tree.addTreeSelectionListener(new TreeSelectionListener() {
            public void valueChanged(TreeSelectionEvent arg0){
                DefaultMutableTreeNode lastselected = (DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent());
                
                String recieveline = null;
                if (lastselected == null) return;
        
                if (status == CONNECT) {
                    if (lastselected==tree_model.getRoot()) {
                     out.println("1");
                     recieveDataByNode(lastselected);     
                        return;
                    }
                    else 
                        out.println(lastselected.toString());
//                        recieveDataByNode(lastselected);
                 } // connect
            }
        });



Tnx
PM MAIL   Вверх
kasya
Дата 16.4.2005, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.4.2005

Репутация: нет
Всего: нет



Пожалуйста проверьте код.


Задание такое:
есть структура на клиенте:

Лукции(ето корень)-
- напр. ООП
- Линукс
- Ява
- С++ -
- Иванов
- Сидоров
- Пупкин



есть сервер, на каком есть этот спмсок лекций.
Надо чтобы при выборе корня коиент получал список лекций и выводил в дерево как написано. Это он и делает,
но если я добавлю новую лекцию(это тоже делает моя програма) надо обновить корень, тоесть список лекций. Проблема в том что клиет получает новый список, но не добавляет новые лекции(конешно можно было это реализовать на клиенте, просто добавить в дерево но надо имено так).

Помогите разобраться с кодом.

Ф-ция по добавлению даных к выбраной Node

Код

public void recieveDataByNode(DefaultMutableTreeNode lastselectednode) {
        String recieveline = null;
        try {
            recieveline = in.readLine(); 
        }
        catch (IOException ioe) {ShowMessage("Nothing to recieve, time out.");status = DISCONECT;return;}
//        ShowMessage("Recieve:[" + recieveline +"]");
        
        lastselectednode.removeAllChildren();
        
        ShowMessage("Delete ok");
        StringTokenizer tok = new StringTokenizer(recieveline,"|");
        while (tok.hasMoreTokens()) {
        String element = tok.nextToken();
        lastselectednode.add(new DefaultMutableTreeNode(element));
        }
    }



Тут событие выбора елемента:


DefaultMutableTreeNode prev_selected_node;

Код

    tree = new JTree(root);
        tree.setEnabled(false);
        tree_model = (DefaultTreeModel)tree.getModel();
        tree.addTreeSelectionListener(new TreeSelectionListener() {
            public void valueChanged(TreeSelectionEvent arg0){
                DefaultMutableTreeNode lastselected = (DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent());
                
                String recieveline = null;
                if (lastselected == null) return;
                if ((status == CONNECT)&(!lastselected.equals(prev_selected_node))) {
                    prev_selected_node = lastselected;
                    if (lastselected==tree_model.getRoot()) {
                     out.println("1");
                     recieveDataByNode(lastselected);     
                        return;
                    }
                    else 
                        out.println(lastselected.toString());
//                        recieveDataByNode(lastselected);
                 } // connect
               
             tree.repaint();
            }
        });



К лекциям в свою очередь будет прибавляться список преподователей какий будут вести эту лекцию.

И еще странно: что-то иногда пропадают линии связи между root and children.


PS: может у кого-то есть рабочая програма по вставке-удалению узлов дерева. Маленькая и простая.


Большое спасибо за ответы.

PM MAIL   Вверх
Domestic Cat
Дата 16.4.2005, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172




 ! 
 
kasya, во-первых прошу - называте свои темы по-русски, а не на неправильном английском. Во-вторых, НЕ НАДО ДУБЛИРОВАТЬ ТЕМЫ В НЕСКОЛЬКИХ ФОРУМАХ СРАЗУ.



--------------------

PM   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.