![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Alexander06 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
В приложении заполняю таблицу JTable в соответствии с содержимым массива объектов arrBasics.
Делает это функция updateBasicsTable(). Определенная последовательность действий вызывает исключение. 1) Вызываем функцию updateBasicsTable при пустом массиве arrBasics. Таблица пуста, заголовки столбцов присутствуют, все ок. 2) Добавляем элемент в arrBasics. 3) Вызываем функцию updateBasicsTable. 4) В функции при вызове tableBasisc.setModel(dataModel); переходим к переопределенной мною функции getColumnClass прежней модели. Прежней, потому что возникает исключение "Exception occurred during event dispatching: java.lang.ArrayIndexOutOfBoundsException: 0 >= 0" в строке returnValue = getValueAt(0, column).getClass(); Ведь, раз в прежней модели не было данных, обращаться к 0-й строке не получиться. Прежняя модель должна как-то деактивироваться? вот функция заполнения таблицы
Возможно, есть способ не формировать всю модель данных заново, но мне хотелось бы понять в чем ошибка здесь. Подскажите , что я упускаю в своем коде. Спасибо. Это сообщение отредактировал(а) Alexander06 - 10.4.2009, 15:30 |
|||
|
||||
Alexander06 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
решил проблему с исключением, переопределив getColumnClass
но все равно не ясно как быть, если я не знаю заранее типы данных в таблице или не хочу переписывать эту функцию для каждой таблицы. |
|||
|
||||
aleksandy |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 17.12.2006 Репутация: 1 Всего: 5 |
Насколько я могу судить твой метод getColumnClass(int column) ВСЕГДА будет возвращать Object.class.
Для правильной работы нужно либо вставить break-и или сделать так:
|
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 5 Всего: 72 |
Второй вариант будет всегда возвращать Class.class (кроме варианта default).
Первый вариант не работает если в таблице нет данных. И не всегда getColumnClass() должен возвращать класс помещённых в колонке данных: иногда нужно вернуть Icon.class, а класс данных будет ImageIcon или другой класс, реализующий интерфейс Icon.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |