Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в JTable / 8 сообщений из 8, страница 1 из 1
12.11.2014, 10:51
    #38803120
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
Добрый день, подскажите что значит ниже ошибка:
Код: java
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.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at SafetyInspectionRegister.SafetyTableCellRenderer.getTableCellRendererComponent(SafetyTableCellRenderer.java:34)
	at javax.swing.JTable.prepareRenderer(Unknown Source)
	at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
	at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
	at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
	at javax.swing.plaf.ComponentUI.update(Unknown Source)
	at javax.swing.JComponent.paintComponent(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JViewport.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at javax.swing.RepaintManager.paint(Unknown Source)
	at javax.swing.JComponent._paintImmediately(Unknown Source)
	at javax.swing.JComponent.paintImmediately(Unknown Source)
	at javax.swing.RepaintManager$3.run(Unknown Source)
	at javax.swing.RepaintManager$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.access$1100(Unknown Source)
	at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)



Это происходит когда загружаю JTableModel в JTable потом двигаю право и выскакивает и выдает ошибку на рендере.

Код: java
1.
2.
3.
4.
5.
	      _safetyTablePane = new JScrollPane(_safetyTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
	      _safetyTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);	      
	      _safetyTable.setColumnModel(cm);	
	      _safetyTable.setModel(_safetyModel);
	      _safetyTable.setDefaultRenderer(Object.class, new SafetyTableCellRenderer());



Это сам сейфтитэйблрендерер:
Код: java
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.
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.table.TableCellRenderer;
import SafetyInspectionRegister.SafetyTableModel;

public class SafetyTableCellRenderer extends JLabel implements TableCellRenderer
{

	private static final long serialVersionUID = 1;
	
	SafetyTableCellRenderer()
	{
		this.setHorizontalAlignment(SwingConstants.CENTER);
	}
	
	@Override
	public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int column) {
	
			switch(column)
			{	
				case SafetyTableModel.EDIT_COLUMN:
				{
					this.setText("<html><u color=\"blue\">" + value.toString() + "</u></html>");
			
					return this;
				}
			}

		 this.setText(value.toString());

		return this;
	}	

}
...
Рейтинг: 0 / 0
12.11.2014, 10:54
    #38803124
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
LiQuidДобрый день, подскажите что значит ниже ошибка:
Код: java
1.
2.
3.
4.
5.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at SafetyInspectionRegister.SafetyTableCellRenderer.getTableCellRendererComponent(SafetyTableCellRenderer.java:34)

			this.setText("<html><u color=\"blue\">" + value.toString() + "</u></html>");
		 this.setText(value.toString());


Ниже ошибка значит что value переменная значение null имеет.
...
Рейтинг: 0 / 0
12.11.2014, 11:15
    #38803161
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
Но значение было, данные загрузились через модель в таблицу, но как двигаю скролбал право то выскакивает эта фигня.
...
Рейтинг: 0 / 0
12.11.2014, 11:17
    #38803164
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
LiQuid,

Это не фигня. Это лень и нежелание пользоваться отладчиком.
...
Рейтинг: 0 / 0
12.11.2014, 11:19
    #38803171
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
Может кто встречал такое.
Там тейблселрендерер тоже загрузился.
...
Рейтинг: 0 / 0
12.11.2014, 11:25
    #38803184
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
LiQuidМожет кто встречал такое.
Там тейблселрендерер тоже загрузился.
Тут не надо ничего встречать. У вас TableModel возвращает null значение. Вероятно это ячейки изначально не видно. Когда вы скролите, renderer пытается их отобразить и падает. Почему бы просто в Renderer-e не предусмотреть null значения - для меня загадка.

Невероятно сложный код выглядит вот так.
Код: java
1.
2.
3.
if(value == null){
  setText("");
}



А ещё вместо
value.toString()
можно использовать
Objects.toString(value)
либо
String.valueOf(value)
...
Рейтинг: 0 / 0
12.11.2014, 11:31
    #38803194
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
Я бы радостью дебагить в эклипсе не умею, там все замудренно все.
...
Рейтинг: 0 / 0
12.11.2014, 11:34
    #38803198
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в JTable
LiQuidЯ бы радостью дебагить в эклипсе не умею, там все замудренно все.
Попытка надавить на жалось?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в JTable / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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