powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTree вопрос
13 сообщений из 13, страница 1 из 1
JTree вопрос
    #34654195
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создаю дерево:
Код: plaintext
1.
2.
3.
4.
5.
MyBean b= new  MyBean();
b.setName("ddd");
b.setID( 2 );
DefaultMutableTreeNode top= new  DefaultMutableTreeNode(b);
top.add( new  DefaultMutableTreeNode(""));
tree.add(top);
естественно при выводе на панельку дерево показывается и возле названия категории пишется название класса,а мне нужно чтобы было читаемое название,можно конечно написать так:
Код: plaintext
DefaultMutableTreeNode top= new  DefaultMutableTreeNode(b.getName());
и тогда все нормально,но мне нужно хранить именно объекь MyBean в узле дерева, а не просто строку,как сделать правильно подскажите пожалуйста.
...
Рейтинг: 0 / 0
JTree вопрос
    #34654200
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Renderer
...
Рейтинг: 0 / 0
JTree вопрос
    #34654235
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем рендерер? В Вашем случае достаточно переопределить в бине метод toString() и возвратить то что нужно (name, там, или что то другое)
...
Рейтинг: 0 / 0
JTree вопрос
    #34654265
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или toString
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
JTree вопрос
    #34654330
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)Ничего не понимаю, ну пишу я так используя метод toString():
Код: plaintext
1.
2.
3.
4.
MyBean bean= new  MyBean();
    bean.setName("ffff");
    DefaultMutableTreeNode top= new  DefaultMutableTreeNode(bean.toString());
    top.add( new  DefaultMutableTreeNode(""));
    tree= new  JTree(top);
И в дереве название узда выводит такое вот:
Код: plaintext
2)И еще вопросик:
Код: plaintext
1.
DefaultMutableTreeNode t=new DefaultMutableTreeNode(new MyBean());
MyBean main= (MyBean)t.getUserObject();
вылетает ошибка:
Код: plaintext
java.lang.ClassCastException MyBean main= (MyBean)t.getUserObject();
...
Рейтинг: 0 / 0
JTree вопрос
    #34654331
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toString() -sux. Ибо речь идёт о concern'е GUI. Renderer
...
Рейтинг: 0 / 0
JTree вопрос
    #34654398
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите мне!!!!
1)Ничего не понимаю, ну пишу я так используя метод toString():

MyBean bean=new MyBean();
bean.setName("ffff");
DefaultMutableTreeNode top=new DefaultMutableTreeNode(bean.toString());
top.add(new DefaultMutableTreeNode(""));
tree=new JTree(top);
И в дереве название узда выводит такое вот:
mypack.MyBean@bd928a
2)И еще вопросик:

DefaultMutableTreeNode t=new DefaultMutableTreeNode(new MyBean());MyBean main= (MyBean)t.getUserObject();
вылетает ошибка:

java.lang.ClassCastException MyBean main= (MyBean)t.getUserObject();
...
Рейтинг: 0 / 0
JTree вопрос
    #34654993
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toString() в MyBean нужно переопределить (перекрыть) чтобы он возвращал то, что Вы хотите видеть. А добавлять нужно сами бины
Код: plaintext
DefaultMutableTreeNode top= new  DefaultMutableTreeNode(bean.toString());

to expp: в данном конкретном случае можно поспорить, здесь рендерер это overkill, потому что кастом рендерер будет с большой долей вероятности повторять функционал стандартного. Вопрос: нахера попу гармонь?
...
Рейтинг: 0 / 0
JTree вопрос
    #34654996
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле не так
fixxer
Код: plaintext
DefaultMutableTreeNode top= new  DefaultMutableTreeNode(bean.toString());


а так
Код: plaintext
1.
DefaultMutableTreeNode top= new  DefaultMutableTreeNode(bean);
...
Рейтинг: 0 / 0
JTree вопрос
    #34655335
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerto expp: в данном конкретном случае можно поспорить, здесь рендерер это overkill, потому что кастом рендерер будет с большой долей вероятности повторять функционал стандартного. Вопрос: нахера попу гармонь?

назачем служителю культа язычковый клавишно-пневматический музыкальный инструмент с мехами и двумя клавиатурами, не знаю, но бояны рвать сегодня не намерен. есть принципы: распределения ответственности, и повторного использования. из них следует, что Renderer, нах.
...
Рейтинг: 0 / 0
JTree вопрос
    #34658235
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите не до конца все-равно поняла я, я так и делаю DefaultMutableTreeNode top=new DefaultMutableTreeNode(bean);, т.е. добавляю бин,но не могу понять где именно переопределять метод toString(),приведите пример пожалуйста,в бине переопределять или где , и как.
Спасибо
...
Рейтинг: 0 / 0
JTree вопрос
    #34658366
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста помогите,очень срочно нужно,повторяю вопрос свой:
Простите не до конца все-равно поняла я, я так и делаю DefaultMutableTreeNode top=new DefaultMutableTreeNode(bean);, т.е. добавляю бин,но не могу понять где именно переопределять метод toString(),приведите пример пожалуйста,в бине переопределять или где , и как.
Спасибо
...
Рейтинг: 0 / 0
JTree вопрос
    #34658422
pasha701
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
 import  java.awt.BorderLayout;

 import  javax.swing.JFrame;
 import  javax.swing.JTree;
 import  javax.swing.tree.DefaultMutableTreeNode;

 public   class  TestFrame  extends  JFrame{
	 private   static   final   long  serialVersionUID = 1L;

	 public   static   void  main(String []arg){
		TestFrame frame= new  TestFrame();
		frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);

	}
	 public  TestFrame(){
		 this .getContentPane().setLayout( new  BorderLayout());
		JTree tree = new  JTree( new  DefaultMutableTreeNode( new  Bean("Need override toString()")));
		 this .getContentPane().add(tree,BorderLayout.CENTER);
	}
	
	 private   class  Bean{
		String value;
		 public  Bean(String valueParam){
			 this .value=valueParam;
		}
		//--- Вот такое нужно обязательно если без renderer---
		 public  String toString(){
			 return  value;
		}
	}
	
}

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


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