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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> expandPath() collapsePath() в JTree, неработает collapsePath() 
V
    Опции темы
cube
Дата 11.6.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Неработает collapse... 
этот мой метод который срабатывает при поиске текста из searchText (текстовое поле) в цикле для каждой ноды дерева

Код

  private void findMatches(Node node)
  {
    JLabel label = node.getLabel();
    clearMatches(label); // в этом методе я только выделяю ту часть текста которая соответствует поиску
    if ("".equals(searchText.getText()))return;
    List<Integer> indexes = new ArrayList<Integer>(); // здесь я храню некие индексы (т.е. если этот list не пуст, значит в этой ноде есть какое-то совпадение и текст в ней нужно выделить)
    int i = 0;
    while (i<label.getText().length())
    {
      i = label.getText().toLowerCase().indexOf(searchText.getText().toLowerCase(), i);
      if (i>=0)
        indexes.add(i);
      else break;
      i++;
    }
    if (indexes.size()>0) // это означает что нашлось в этой ноде совпадение
    {
      selectMatches(label, indexes.toArray(new Integer[indexes.size()]), searchText.getText().length()); // выделяю совпавшийся текст
      expandPath(new TreePath(node.getPath())); // раскрываю путь к этой ноде
    }else // нода не соответствует моему поиску, совпадений в ней нет
       collapsePath(new TreePath(node.getPath())); // сворачиваю путь к ней
  }


больше нигде в коде нет expandPath или collapsePath, метод findMatches срабатывает один раз для каждой ноды!
PM MAIL   Вверх
dorogoyIV
Дата 11.6.2008, 18:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



 smile 
эх, ну когда народ научится задавать правильно вопрос?!

cube, по твоему показанному коду надо написать весь код самому.  smile 

воспользуйся поиском - можешь написать в поле "кто отвечал" мой ник, я давал несколько примеров по JTree, какой то из них должен подойти тебе, может и другие примеры найдешь...
PM MAIL   Вверх
cube
Дата 11.6.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(dorogoyIV @ 11.6.2008,  18:30)
smile 
эх, ну когда народ научится задавать правильно вопрос?!

cube, по твоему показанному коду надо написать весь код самому.  smile 

воспользуйся поиском - можешь написать в поле "кто отвечал" мой ник, я давал несколько примеров по JTree, какой то из них должен подойти тебе, может и другие примеры найдешь...

Спасибо, но я уже разобрался, проблема была при вызове collapsePath(new TreePath(node.getPath())) - путь к node раскрывался  smile, 

т.е. если у дерева (внизу) вызвать вот так метод collapsePath(new TreePath(child_1.getPath())), то путь до этой ноды раскроется(!), пришлось переписать свой findMatches(), так чтобы вообще не вызывать collapsePath() во всех таких случаях, и теперь все работает  smile 

root
|
+-A
|   |
|   +-child_1
|   +-child_2
|   +-child_3
|
+-B

Это сообщение отредактировал(а) cube - 11.6.2008, 21:34
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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