Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JTree вопрос / 13 сообщений из 13, страница 1 из 1
11.07.2007, 16:56:36
    #34654195
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
Создаю дерево:
Код: 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
11.07.2007, 16:57:43
    #34654200
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
Renderer
...
Рейтинг: 0 / 0
11.07.2007, 17:05:02
    #34654235
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
Зачем рендерер? В Вашем случае достаточно переопределить в бине метод toString() и возвратить то что нужно (name, там, или что то другое)
...
Рейтинг: 0 / 0
11.07.2007, 17:12:07
    #34654265
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
или toString
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
11.07.2007, 17:26:35
    #34654330
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
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
11.07.2007, 17:26:38
    #34654331
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
toString() -sux. Ибо речь идёт о concern'е GUI. Renderer
...
Рейтинг: 0 / 0
11.07.2007, 17:46:27
    #34654398
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
Помогите мне!!!!
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
12.07.2007, 00:11:36
    #34654993
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
toString() в MyBean нужно переопределить (перекрыть) чтобы он возвращал то, что Вы хотите видеть. А добавлять нужно сами бины
Код: plaintext
DefaultMutableTreeNode top= new  DefaultMutableTreeNode(bean.toString());

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


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

назачем служителю культа язычковый клавишно-пневматический музыкальный инструмент с мехами и двумя клавиатурами, не знаю, но бояны рвать сегодня не намерен. есть принципы: распределения ответственности, и повторного использования. из них следует, что Renderer, нах.
...
Рейтинг: 0 / 0
13.07.2007, 12:51:33
    #34658235
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
Простите не до конца все-равно поняла я, я так и делаю DefaultMutableTreeNode top=new DefaultMutableTreeNode(bean);, т.е. добавляю бин,но не могу понять где именно переопределять метод toString(),приведите пример пожалуйста,в бине переопределять или где , и как.
Спасибо
...
Рейтинг: 0 / 0
13.07.2007, 17:12:12
    #34658366
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
Пожалуйста помогите,очень срочно нужно,повторяю вопрос свой:
Простите не до конца все-равно поняла я, я так и делаю DefaultMutableTreeNode top=new DefaultMutableTreeNode(bean);, т.е. добавляю бин,но не могу понять где именно переопределять метод toString(),приведите пример пожалуйста,в бине переопределять или где , и как.
Спасибо
...
Рейтинг: 0 / 0
13.07.2007, 17:32:48
    #34658422
pasha701
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree вопрос
Код: 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
Форумы / Java [игнор отключен] [закрыт для гостей] / JTree вопрос / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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