В настоящее время я рефакторинг JTable
, который отображает множество различных типов данных. Основная причина этого рефакторинга заключается в том, что несколько ClassCastExceptions
(автор/друг, который написал код, отключен на паузе), и я не могу найти, откуда они происходят. Из-за большой базы кода я не понимаю, с чего начать. У кого-нибудь есть предложения? Я понимаю и извиняюсь за двусмысленность этого вопроса!Неизвестный источник ClassCastException (в JTables)
Я включил трассировку стека ниже. Благодаря!!
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean at javax.swing.JTable$BooleanRenderer.getTableCellRendererComponent(Unknown Source) 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.paintToOffscreen(Unknown Source) at javax.swing.BufferStrategyPaintManager.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.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(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)
Можем ли мы увидеть некоторые из кода создания таблицы ? Похоже, есть место, где есть строка, но таблица ожидает логическое значение. –
Я бы с удовольствием, но код повсюду. Очень кошмар. Однако я столкнулся с тем, что я считаю основной проблемой. Я должен был упомянуть, что эти исключения возникают, когда содержимое строки сортируется с помощью 'TableRowSorter'. Проблема в том, что столбцы 'JTable' (а точнее один столбец) имеют несколько' CellRender', которые он может выбрать, и когда происходит сортировка, 'CellRender' не меняются. У меня есть метод, который теперь меняет их, но я не уверен, как вызвать метод после сортировки. –
«RowSorterListener» прослушивает этот вид, но, к сожалению, он вызывает код до того, как происходит сортировка, что делает его бесполезным. Итак, я думаю, что моя текущая проблема заключается в том, как вызывать метод после завершения сортировки. Есть идеи? Спасибо за всю помощь, очень ценю :) –