0

未知の領域 (有効な位置とブロックされた位置のグリッド) を探索するロボットの Java プロジェクトについて、現時点ではよくわからないことで遊んでいます。とにかく、進め方の例として与えられた基本的な GUI を改善しようとしました。それは、マップとロボットを表すテキスト フィールドとさまざまな Unicode 文字で行われていました。paint メソッドをオーバーライドし、色付きの長方形を画面に描画してマップを表すことで、それを実行しようとしました。プログラムが起動すると、以下の実行時例外が表示されますが、ウィンドウがロードされ (何らかの理由で、マウスを上に移動するまで上部の JButton がすべて見えなくなります)、それ以降は正常に機能します。

試行錯誤し、オンラインで見つけた例で遊んでここまで来ましたが、ここで把握していない基本的なものがあると思います。

ここで私にできるアドバイスをありがとう。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Controller.paint(Controller.java:156)
    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(Unknow
n 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)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Controller.paint(Controller.java:156)
    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(Unknow
n 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)
4

1 に答える 1

1

Swing チュートリアルを読むことから始めることをお勧めします。塗装方法を説明するセクションが含まれています。1 つには、paintComponent() メソッドをオーバーライドする必要があります。上記のエラーから、コードが paint() メソッドにあるようです。

何かを学ぶには、小さなことから始めるべきです。問題が発生した場合は、問題を示すSSCCEを投稿できます。

于 2009-12-08T17:03:23.357 に答える