| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > Непонятный ArrayIndexOutOfBoundsException |
| Автор: STIM 30.3.2012, 21:26 |
| Возникла следующая проблема. Есть таблица, с мною созданной моделью наследованной от AbstractTableModel. Проблема в том, что, при многократном редактировании строк таблицы вылезает исключение. При этом оно вылезает не всегда (но чаще, чем не вылезает), и непонятно на что указывает: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 at java.util.Vector.elementAt(Unknown Source) at javax.swing.table.DefaultTableColumnModel.getColumn(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.ViewportLayout.layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$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) Код большой, выкладывать смысла нет, не зная в каком месте исключение происходит. Подбросьте, пожалуйста, идею в каком месте искать ошибку и как ловить ошибку. |
| Автор: COVD 31.3.2012, 00:07 |
| наверное "при многократном редактировании строк" вы каким-то образом удаляете колонки из ColumnModel и таблица об этом не знает |
| Автор: STIM 31.3.2012, 07:38 | ||
Код модели таблицы:
|
| Автор: COVD 31.3.2012, 15:06 |
| Здесь все правильно |
| Автор: dorogoyIV 31.3.2012, 15:19 |
я бы добавил метод setValueAt(Object value, int row, int column) ... тогда изменения сохранялись бы в модели, а щас у ТС неизвестно куда изменения в таблице попадают |
| Автор: COVD 31.3.2012, 16:36 |
| getColumnCount() всегда возвращает 9, но когда таблица пытается получить первую колонку по индексу 0, выясняется, что дефолтная модель колонок (не таблицы) - пустая. Выбрасывается исключение. Как при редактировании строк можно обнулить DefaultTableColumnModel я не представляю. |
| Автор: STIM 1.4.2012, 09:01 | ||
Спасибо, помогло. Хотя нет, реже появляться стали. |