powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по JTree
10 сообщений из 10, страница 1 из 1
Вопрос по JTree
    #32978147
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть дерево,состоит из списка мастеров.
Как мне сделать так,чтобы при нажатии на элемент списка,справа показывалась фотка мастера.
Делаю так:
.........
DefaultMutableTreeNode root=new DefaultMutableTreeNode("Список мастеров");
jTree1.addTreeSelectionListener(new Prop(this));
root.add(new DefaultMutableTreeNode("Олег Федорович"));
.........
public void jTreeEv(javax.swing.event.TreeSelectionEvent e){
if (e.getSource().toString().equals("Олег Федорович")) {
System.out.println("EVENT ON");
}else System.out.println("EVENT NOT");
}
.....
class Prop implements javax.swing.event.TreeSelectionListener {
private Infomast a;

Prop(Infomast a) {
this.a = a;
}
public void valueChanged(javax.swing.event.TreeSelectionEvent e) {
a.jTreeEv(e);
}
}
В результате в консоле выдает: EVENT NOT
Спасибо
...
Рейтинг: 0 / 0
Вопрос по JTree
    #32978175
ну а если сделать
System.out.println("event source: " + e.getSource().toString());
в начале метода, что будет писаться?
...
Рейтинг: 0 / 0
Вопрос по JTree
    #32978182
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну пажалуста!!! оформляй код так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DefaultMutableTreeNode root =  new  DefaultMutableTreeNode("Список мастеров");
jTree1.addTreeSelectionListener( new  Prop( this ));
root.add( new  DefaultMutableTreeNode("Олег Федорович"));
.........
 public   void  jTreeEv(javax.swing.event.TreeSelectionEvent e) {
   if  (e.getSource().toString().equals("Олег Федорович")) {
    System.out.println("EVENT ON");
  }  else  {
    System.out.println("EVENT NOT");
  }
}
.....
 class  Prop  implements  javax.swing.event.TreeSelectionListener {
   private  Infomast a;

  Prop(Infomast a) {
     this .a = a;
  }
  
   public   void  valueChanged(javax.swing.event.TreeSelectionEvent e) {
    a.jTreeEv(e);
  }
}

--
а?
...
Рейтинг: 0 / 0
Вопрос по JTree
    #32978203
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван Федоровичну а если сделать
System.out.println("event source: " + e.getSource().toString());
в начале метода, что будет писаться?
Вот такую фигню выдал
Код: plaintext
1.
javax.swing.JTree[, 0 , 0 ,210x286,alignmentX= null ,alignmentY= null ,border=,flags= 1456 ,maximumSize=,minimumSize=,preferredSize=,editable=false,invokesStopCellEditing=false,largeModel=false,rootVisible=true,rowHeight= 16 ,scrollsOnExpand=true,showsRootHandles=false,toggleClickCount= 2 ,visibleRowCount= 20 ]
...
Рейтинг: 0 / 0
Вопрос по JTree
    #32978213
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636 Иван Федоровичну а если сделать
System.out.println("event source: " + e.getSource().toString());
в начале метода, что будет писаться?
Вот такую фигню выдал
Код: plaintext
1.
javax.swing.JTree[, 0 , 0 ,210x286,alignmentX= null ,alignmentY= null ,border=,flags= 1456 ,maximumSize=,minimumSize=,preferredSize=,editable=false,invokesStopCellEditing=false,largeModel=false,rootVisible=true,rowHeight= 16 ,scrollsOnExpand=true,showsRootHandles=false,toggleClickCount= 2 ,visibleRowCount= 20 ]

и это правильно. не правильно работаешь ты с моделью дерева.
...
Рейтинг: 0 / 0
Вопрос по JTree
    #32978232
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
       public   void  valueChanged(TreeSelectionEvent e) {
        Object object = jTree1.getLastSelectedPathComponent();
         if  (object  instanceof  DefaultMutableTreeNode) {
          DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) object;
          Object uo = selectedNode.getUserObject();
          System.out.println(uo);
        }
      }
...
Рейтинг: 0 / 0
Вопрос по JTree
    #32978270
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ JE
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
       public   void  valueChanged(TreeSelectionEvent e) {
        Object object = jTree1.getLastSelectedPathComponent();
         if  (object  instanceof  DefaultMutableTreeNode) {
          DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) object;
          Object uo = selectedNode.getUserObject();
          System.out.println(uo);
        }
      }

Спасибо дружище,ты лучший
...
Рейтинг: 0 / 0
Вопрос по JTree
    #32978307
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не забывай, что пользуясь парой set/get-UserObject(), можно
с узлами твоего дерева связывать любой объект. этот объект
должен перегружать метод класса Object.toString(), для того
чтобы полученную строку рендерер дерева (который по умолчанию)
мог вывести в UI. либо реализовать свой TreeCellRenderer. что совсем
не сложно.
...
Рейтинг: 0 / 0
Вопрос по JTree
    #33229680
taison
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А.Грасоff™ JEне забывай, что пользуясь парой set/get-UserObject(), можно
с узлами твоего дерева связывать любой объект. этот объект
должен перегружать метод класса Object.toString(), для того
чтобы полученную строку рендерер дерева (который по умолчанию)
мог вывести в UI. либо реализовать свой TreeCellRenderer. что совсем
не сложно.

Этот код выдаёт выбранную ветку, лист. А как узнать id ветки и листа?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
      public   void  valueChanged(TreeSelectionEvent e) {
        Object object = jTree1.getLastSelectedPathComponent();
         if  (object  instanceof  DefaultMutableTreeNode) {
          DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) object;
          Object uo = selectedNode.getUserObject();
          System.out.println(uo);
        }
      }
...
Рейтинг: 0 / 0
Вопрос по JTree
    #33230610
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636Этот код выдаёт выбранную ветку, лист. А как узнать id ветки и листа?

Swing это не MFС. Здесь нет никаких id, есть только ссылки на екземпляры классов (в данном случае DefaultMutableTreeNode - лист). Ветка (TreePath) - это просто последовательность ссылок на объекты TreeNode. Сами по себе объекты-ветки ни в JTree, ни в TreeModel не хранятся.

Чтобы получить id, тебе надо самому реализовать это. Можешь написать класс, который наследует DefaultMutableTreeNode и предоставляет метод getId(), а само значение id, к примеру, устанавливается во время создания экземпляра, то есть передается в конструктор.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 class  IdentifiedMutableTreeNode  extends  DefaultMutableTreeNode {
   int  id;
   public  IdentifiedMutableTreeNode( int  id) {
     this .id = id;
  }
   public   int  getId() {
     return  id;
  }
}

А вообще зачем тебе нужен id?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по JTree
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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