2009-07-22 23 views
0

これは、生成されたスタックトレースです:イベントディスパッチ中にこのIllegalArgumentExceptionが発生する原因は何ですか?

Exception occurred during event dispatching: 
java.lang.IllegalArgumentException: Cannot format given Object as a Number 
    at java.text.DecimalFormat.format(Unknown Source) 
    at java.text.Format.format(Unknown Source) 
    at javax.swing.JTable$DoubleRenderer.setValue(Unknown Source) 
    at javax.swing.table.DefaultTableCellRenderer.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.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.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.pumpEventsForFilter(Unknown Source) 
    at java.awt.Dialog$1.run(Unknown Source) 
    at java.awt.Dialog$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.awt.Dialog.show(Unknown Source) 
    at java.awt.Component.show(Unknown Source) 
    at java.awt.Component.setVisible(Unknown Source) 
    at java.awt.Window.setVisible(Unknown Source) 
    at java.awt.Dialog.setVisible(Unknown Source) 
    //a call to setVisible(true) 
    //some function calls that initialize the dialog box 
    //However, the problem occurs AFTER the dialog box is open, when check 
    //boxes are clicked on/off in certain orders. Unfortunately, I can't 
    //share any of this code. 
    //Currently, I'm examining the event that's fired. But other ideas are 
    //welcome. 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(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) 

奇妙なことは、順序、私がチェックし、JCheckBoxの-ES事項のチェックを外していることです。パターンがあるかどうかを確認しようとしていますが、十分なデータがまだありません。私は潜在的な問題を捜すためにどこにアイデアを出そうとしています。

EDIT 1:スタックトレースの編集行で呼び出された4つのメソッドを確認しました。それらは、ウインドウが開いて最初にフィールドに必要なデータを入力するときにのみ呼び出されます。ダイアログが開いたら、決して呼び出されないので、問題はありません。

EDIT 2:編集された関数呼び出しのすべての変数の状態を3回チェックした後、私は犯人であるとみなされました。

答えて

0

列のうちの1つに対してDoubleRendererを持つJTableがあり、取得するデータにその小数点以下の列に不正な値が含まれているようです。数字だけではなく、英数字を使用することも考えられます。

+0

私は確かにそうです。しかし、どのような価値が問題を引き起こしているのか、どうすればわかるのでしょうか? JTableを使用するコード内のスタックトレースによって強調表示されるものはありません。 –

+0

これは、チェックボックスをオンまたはオフにすると、行がJTableに追加されることを意味します。ただし、追加されたすべての行はデフォルト値を使用します。だから私が理解しようとしていることは、あなたが正しいのであれば、どのようなデフォルト値が例外を引き起こしているのかを判断する方法と、それをどのように修正するのかです。 –

+0

それは本当です。 JTableをバインドしたテーブルモデルをチェックし、数値データが必要な列を調べる必要があります。 – MicSim

関連する問題