2

私が取り組んでいる Java Swing プログラムでは、以下の例外が引き続き発生します。これはランダムなタイミングで発生し、再現性にはほど遠いものです。通常、時間通りにアクションイベントがトリガーされないこと以外に問題が発生することはないようですが、通常、この例外の後でも問題は発生しません。その発生には一貫性がないようです。誰にでもアドバイスはありますか?ニンバスLAFを使用していることに言及する必要があります。

java.lang.NullPointerException
at javax.swing.plaf.synth.SynthContext.getPainter(SynthContext.java:181)
at javax.swing.plaf.synth.SynthPanelUI.update(SynthPanelUI.java:95)
at javax.swing.JComponent.paintComponent(JComponent.java:752)
at javax.swing.JComponent.paint(JComponent.java:1029)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at org.jdesktop.jxlayer.JXLayer.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
at javax.swing.RepaintManager.paint(RepaintManager.java:1224)
at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:785)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
4

4 に答える 4

4

次の呼び出し時に同じエラーが発生することがあります。

 JComponent.updateUI() 

Nimbus ルック アンド フィールを使用します。私の場合、そのような呼び出しは必要なかったので、行を削除しました。

于 2012-11-21T04:14:49.043 に答える
3

Google で検索すると、これは非常によくあるバグです。

サイトの1つはこれを示唆しています:

ラインの交換

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

と:

UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");

于 2011-02-24T22:18:23.743 に答える
0

次の方法でスイング コンポーネントを再描画しようとした後、このエラーが発生しました。

SwingUtilities.updateComponentTreeUI(COMPONENT); 

COMPONENT再描画が必要なスイング コンポーネントはどこにありますか。

上記のコードをこれに置き換えて、最終的にこの問題を解決しました

COMPONENT.validate();
COMPONENT.repaint();
于 2011-12-06T15:05:08.667 に答える