powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не вешается рендерер на таблицу.
4 сообщений из 4, страница 1 из 1
Не вешается рендерер на таблицу.
    #33910714
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите, кто, свежим взглядом.

Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
 public   class  MainFrame  extends  JFrame{
	
	/** Creates a new instance of MainFrame */
	 public  MainFrame() {
		
		 this .smilesTable.setDefaultRenderer(Color. class ,  new  SmileRenderer());		
		

		 try {			
			 this .smilesModel.addSmile( new  ImageIcon( new  URL("http://www.sql.ru/forum/images/laugh.gif")));
			 this .smilesModel.addSmile( new  ImageIcon( new  URL("http://www.sql.ru/forum/images/laugh.gif")));
			 this .smilesModel.addSmile( new  Color( 100 ,  100 ,  100 ));
		}
		 catch (Exception e){
			e.printStackTrace();
		}
		 this .getContentPane().add( this .smilesTable);
	}
	 private  SmilesTableModel smilesModel =  new  SmilesTableModel();
	 private  JTable smilesTable =  new  JTable(smilesModel);	
}

/*
Модель для таблицы
*/

 public   class  SmilesTableModel  extends  AbstractTableModel{
	
	/** Creates a new instance of SmilesTableModel */
	 public  SmilesTableModel() {
	}
	
	 public   int  getRowCount(){
		 if  ((smilesList.size() %  3 ) >  0 ){
			 return  smilesList.size() /  3  +  1 ;
		}
		 else {
			 return  smilesList.size() /  3 ;
		}
	}
	
	 public   int  getColumnCount(){
		 return   3 ;
	}
	
	 public  Object getValueAt( int  row,  int  column){
		//System.out.println(row + " " + column);
		 if  (row *  3  + column <  this .smilesList.size()){
			 return   this .smilesList.get(row *  3  + column);
		}
		 else {
			 return   null ;
		}		
	}
	
	 public   void  addSmile(Object Smile){
		 this .smilesList.add(Smile);		
		 this .rowCount = smilesList.size() /  3 ;		
	}
	
	 private   int  rowCount =  0 ;
	
	 private  ArrayList smilesList =  new  ArrayList();
	
}

/*
Рисовальщик. Должна просто получится панелька определённого цвета.
*/

 public   class  SmileRenderer   extends  JPanel  implements  TableCellRenderer{
	
	/** Creates a new instance of SmileRenderer */
	 public  SmileRenderer() {
	}
	
	 public  Component getTableCellRendererComponent(JTable table, Object value,  boolean  isSelected,  boolean  hasFocus,  int  row,  int  column){
		System.out.println( 123 );
		 this .setBackground(Color.YELLOW);
		 this .setBorder( null );
		 return   this ;
	}	
}

...
Рейтинг: 0 / 0
Не вешается рендерер на таблицу.
    #33910719
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вот проблема в том что вместо панельки оранжевой пишется строка типа java.awt.Color...
...
Рейтинг: 0 / 0
Не вешается рендерер на таблицу.
    #33911247
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaDoc внимательнее читать надо

SmilesTableModel extends AbstractTableModel

и

setDefaultRenderer(Color.class, new SmileRenderer());

Так вот аргумент которому ты Color.class скармливаешь это не cellClass а columnClass.

А теперь посмотри как AbstractTableModel реализует getColumnClass метод.
...
Рейтинг: 0 / 0
Не вешается рендерер на таблицу.
    #33911313
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромное! Как я мог так ступить?!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не вешается рендерер на таблицу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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