Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Странный nullpointerException / 7 сообщений из 7, страница 1 из 1
15.02.2012, 19:32:10
    #37663864
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странный nullpointerException
Хочу, чтобы при нажатии плюсика на узле дерева, из базы подгружались значения и вставлялись в нужную ветвь, делаю следующим образом:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  private void jXTree1TreeExpanded(javax.swing.event.TreeExpansionEvent evt) {

         try{
            TreePath tp= evt.getPath();

           DefaultMutableTreeNode selectNode1=(DefaultMutableTreeNode)tp.getLastPathComponent();

           jXTree1.setSelectionPath(tp);

           selectNode1.removeAllChildren();


               modelTree.getCategoryInSelectedNod(selectNode1);



         }catch(Exception h){
             h.printStackTrace();
         }
    }


В методе getCategoryInSelectedNod добавляются нужные мне значения из базы
Нажимаю на плюсик, ничего не происходит, но когда добавляю после
Код: java
1.
 modelTree.getCategoryInSelectedNod(selectNode1);


строчку:
Код: java
1.
 jXTree1.updateUI();

, все отображается, но выскакивает странная ошибка:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at javax.swing.plaf.basic.BasicTreeUI.updateSize(BasicTreeUI.java:1796)
        at javax.swing.plaf.basic.BasicTreeUI.toggleExpandState(BasicTreeUI.java:2205)
        at javax.swing.plaf.basic.BasicTreeUI.handleExpandControlClick(BasicTreeUI.java:2191)
        at javax.swing.plaf.basic.BasicTreeUI.checkForClickInExpandControl(BasicTreeUI.java:2149)
        at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3511)
        at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3459)
        at java.awt.Component.processMouseEvent(Component.java:6285)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6053)


Что я делаю не так? Подскажите пожалуйста
...
Рейтинг: 0 / 0
15.02.2012, 19:38:18
    #37663876
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странный nullpointerException
Мля, ну что за классические грабли. updateUI() обновляет LAF. То что при этом обновляется дерево или таблица, это побочный эффект. Обновлять дерево нужно через нотификацию слушателей. Смотри DefaultTreeModel.fireTreeStructureChanged и подобные методы.
...
Рейтинг: 0 / 0
15.02.2012, 23:01:03
    #37664189
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странный nullpointerException
BlazkowiczМля, ну что за классические грабли. updateUI() обновляет LAF. То что при этом обновляется дерево или таблица, это побочный эффект. Обновлять дерево нужно через нотификацию слушателей. Смотри DefaultTreeModel.fireTreeStructureChanged и подобные методы.
поняла, спасибо))
...
Рейтинг: 0 / 0
16.02.2012, 16:10:23
    #37665506
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странный nullpointerException
Все, я схожу с ума.
Пишу:
Код: java
1.
 insertNodeInto(new DefaultMutableTreeNode(subGroup), selNod, selNod.getChildCount());


после пытаюсь вызвать метод:
Код: java
1.
fireTreeStructureChanged


не могу никак въехать, что конкретно в моем случае нужно вставлять в качестве параметров для метода fireTreeStructureChanged
пыталась сделать так:
Код: java
1.
fireTreeStructureChanged(tree, this.getPathToRoot(selNod), null, null);


но нифига не отображается, как только добавляю
Код: java
1.
tree.updateUI();

, все отображается, но так не правильно, поэтому нужно разобраться с этим
Код: java
1.
fireTreeStructureChanged

. Что я делаю не так, подскажите пожалуйста.
...
Рейтинг: 0 / 0
16.02.2012, 16:16:31
    #37665522
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странный nullpointerException
Sorry, я тупанул по аналогу с таблицей. У дерева есть более удобные методы.
DefaultTreeModel
nodeChanged()
reload()
nodeStructureChanged()
и т.п.

Причем ими не обязательно пользоватся если вставлять\удалять данные через TreeModel:
insertNodeInto()
removeNodeFromParent()
...
Рейтинг: 0 / 0
16.02.2012, 16:38:29
    #37665586
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странный nullpointerException
BlazkowiczSorry, я тупанул по аналогу с таблицей. У дерева есть более удобные методы.
DefaultTreeModel
nodeChanged()
reload()
nodeStructureChanged()
и т.п.

Причем ими не обязательно пользоватся если вставлять\удалять данные через TreeModel:
insertNodeInto()
removeNodeFromParent()
Ничего не понимаю. У меня есть метод:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   private void jXTree1TreeExpanded(javax.swing.event.TreeExpansionEvent evt) {                                     

           TreePath tp= evt.getPath();

           DefaultMutableTreeNode selectNode1=(DefaultMutableTreeNode)tp.getLastPathComponent();

           jXTree1.setSelectionPath(tp);

           selectNode1.removeAllChildren();

           modelTree.getCategoryInSelectedNod(selectNode1);
}


Т.е. при нажатии на плюсик, открывается ветка и в нее тут же подгружаются значения из базы. Вот здесь вызывается метод модели, в котором происходит соединение с базой и вставка значений, вот его краткий код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public void getCategoryInSelectedNod(DefaultMutableTreeNode selNod){
................................
 while(rs.next()){
                      Groupcontact subGroup =new Groupcontact();

                      subGroup.setId(rs.getInt(1));
                      subGroup.setName(rs.getString(2));
                      subGroup.setIdParent(rs.getInt(3));
                      subGroup.setPath(rs.getString(4));
                      subGroup.setIsRoot(rs.getInt(5));
...

                     insertNodeInto(new DefaultMutableTreeNode(subGroup), selNod, selNod.getChildCount());
}


Что здесь не так не могу понять, ведь все же делаю вроде правильно
...
Рейтинг: 0 / 0
16.02.2012, 16:42:51
    #37665605
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странный nullpointerException
Возьмите любой пример дерева с ленивой загрузкой из инета.
http://www.jroller.com/Thierry/entry/swing_lazy_loading_in_jtree
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Странный nullpointerException / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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