-1

そのため、この種のあいまいなエラーが発生していますが、それが何を意味するのかわかりません。私のコードを表示せずに、誰かがこのエラーの原因とこのエラーの解決策を教えてもらえますか? どんな助けでも大歓迎です。

エラーは次のとおりです。

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: No such child: 15
    at java.awt.Container.getComponent(Unknown Source)
    at javax.swing.JComponent.rectangleIsObscured(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.prePaintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.access$700(Unknown Source)
    at javax.swing.RepaintManager$ProcessingRunnable.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)
4

2 に答える 2

2

問題を説明するコードやSSCCEを見なければ、基本的に何が起こっているのかを推測することしかできません。私の賭けは、別の で Swing コンポーネントをいじっていることですThreadArrayIndexOutOfBoundsExceptionこれは、間違ったスレッドでコンポーネントを削除した結果です。

これをデバッグするには、まず を使用して、CheckThreadViolationRepaintManagerそれが示すエラーを修正します。これが機能しない場合は、 にブレークポイントを設定し、ArrayIndexOutOfBoundsExceptionどのコンテナーがエラーの原因であるかを確認し、追加および削除メソッドにブレークポイントを設定して、例外の原因となっているコンポーネントを誰が削除したかを判断します (おそらく間違ったスレッドで、メソッドで簡単に確認できますEventQueue.isDispatchThread()

于 2012-05-05T17:40:31.873 に答える
1

Swing を使用している場合は、ワーカー スレッドを使用してコンポーネントを制御しますワーカー スレッドのチュートリアル

于 2012-05-05T17:33:12.553 に答える