Olá,
Estou com um problema super irritante em meu programa.
Tenho um TableCellRenderer, e um TableCellEditor.
Quando eu insiro um valor na coluna ele gera a exceção
Expcetion in Thread “AWT-EventQueue-0” " java.lang.NullPointerException at javax.swing.JTable.ColumnMarginChanged at javax.swing.JTable.DefaultTableColumnModel.fireColumnPropertyChange
at java.beans.PropertyChangeSupport.firePropertyChange
at java.swing.Event.SwingPropertyChangeSupport.firePropertyChange
at javax.swing.table.TableColumn.firePropertyChange
at javax.swing.table.TableColumn.firePropertyChange
at javax.swing.table.TableColumn.setWidth
at javax.swing.JTable$2.setSizeAt
E continua uma pilha enorme de erros que eu prefiro colocar a PRINT
http://uploaddeimagens.com.br/imagens/pilajtableerro-png
Porém essa não é a parte mais legal, o problema é que isso só acontece quando está rodando no JAR, pois no netbeans o programa funciona perefitamente.
Por favor me ajudem me da alguma luz qualquer coisa, o programa ja está em produção e este erro está infernizando minha vida!
Ja procurei em tudo que é lugar algo sobre isso mas não encontrie nada
Obrigado.
Eu alterei a compilação do programa para Java 1.7 e o problema passou a ocorrer no Netbeans: está é a pila de errros completa
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.JTable.columnMarginChanged(JTable.java:4596)
at javax.swing.table.DefaultTableColumnModel.fireColumnMarginChanged(DefaultTableColumnModel.java:627)
at javax.swing.table.DefaultTableColumnModel.propertyChange(DefaultTableColumnModel.java:691)
at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327)
at javax.swing.event.SwingPropertyChangeSupport.firePropertyChange(SwingPropertyChangeSupport.java:92)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
at javax.swing.table.TableColumn.firePropertyChange(TableColumn.java:278)
at javax.swing.table.TableColumn.firePropertyChange(TableColumn.java:284)
at javax.swing.table.TableColumn.setWidth(TableColumn.java:514)
at javax.swing.JTable$2.setSizeAt(JTable.java:3235)
at javax.swing.JTable$5.setSizeAt(JTable.java:3325)
at javax.swing.JTable.adjustSizes(JTable.java:3361)
at javax.swing.JTable.adjustSizes(JTable.java:3329)
at javax.swing.JTable.setWidthsFromPreferredWidths(JTable.java:3243)
at javax.swing.JTable.doLayout(JTable.java:3131)
at java.awt.Container.validateTree(Container.java:1688)
at java.awt.Container.validateTree(Container.java:1697)
at java.awt.Container.validateTree(Container.java:1697)
at java.awt.Container.validate(Container.java:1623)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:653)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1620)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1072)
at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:871)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:668)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:639)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:610)
at GUI.GerenciadorImpostos$MyTableCellEditor.stopCellEditing(GerenciadorImpostos.java:1195)
at javax.swing.JTable.columnMarginChanged(JTable.java:4595)
at javax.swing.table.DefaultTableColumnModel.fireColumnMarginChanged(DefaultTableColumnModel.java:627)
at javax.swing.table.DefaultTableColumnModel.propertyChange(DefaultTableColumnModel.java:691)
at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327)
at javax.swing.event.SwingPropertyChangeSupport.firePropertyChange(SwingPropertyChangeSupport.java:92)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
at javax.swing.table.TableColumn.firePropertyChange(TableColumn.java:278)
at javax.swing.table.TableColumn.firePropertyChange(TableColumn.java:284)
at javax.swing.table.TableColumn.setPreferredWidth(TableColumn.java:548)
at GUI.GerenciadorImpostos.modeloOutros(GerenciadorImpostos.java:1593)
at GUI.GerenciadorImpostos.TipoComboBoxActionPerformed(GerenciadorImpostos.java:540)
at GUI.GerenciadorImpostos.botaoGerarActionPerformed(GerenciadorImpostos.java:522)
at GUI.GerenciadorImpostos.access$100(GerenciadorImpostos.java:40)
at GUI.GerenciadorImpostos$MyTableCellEditor.stopCellEditing(GerenciadorImpostos.java:1208)
at javax.swing.plaf.basic.BasicTableUI$Actions.actionPerformed(BasicTableUI.java:502)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1661)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2879)
at javax.swing.JTable.processKeyBinding(JTable.java:5262)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2940)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2842)
at java.awt.Component.processEvent(Component.java:6282)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1890)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:752)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1017)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:889)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:717)
at java.awt.Component.dispatchEventImpl(Component.java:4731)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
E eu descobri uma coisa, quando da esse erro é no StopCellEditing(), ele gera 15 janelas de JOptionPane dizendo que o valor digitado é inválido (meu tratamento de erro) ( mesmo o valor digitado sendo válido ), sendo que essa janela de JOptionPane deveria aparecer só uma vez.
Eu simplesmente comento a linha do JOptionPane e o programa passa a funcionar.
Isso ta ridiculamente estranho.