2 차원 배열을 사용하고 배열 위치에서 읽은 문자를 기반으로 현재 좌표에서 10x10 픽셀 블록을 그림으로써 본질적으로 바둑판 패턴을 페인트하려고합니다. .캔버스에 그릴 때 nullpointerexception 오류가 발생합니다.
0000
0011
0100
0000
스택 추적 :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.side.side.GameEngine.paint(GameEngine.java:64)
at javax.swing.JComponent.paintChildren(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.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at java.awt.Window.paint(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.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
행 64 :
if (globalmap[x][y] == '1') { g2d.fillRect(10*y, 10*x, 10,10); }
이지도 배열입니다
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g.fillRect(0, 0, this.getWidth(),this.getHeight());
for(int x = 0;x<=3;x++){
for(int y = 0;y<=3;y++){
// NPE occurs on this line:
if (globalmap[x][y] == '1'){g2d.fillRect(10*y, 10*x, 10,10);}
}
}
}
:이 문제와 관련된 모든 코드라고 생각합니다
... 어떤 라인은 라인 64? –
globalmap이 null이 아닌 것은 확실합니까? –
진지하게, 라인 64는 무엇입니까? 모니터를 볼 수 없다는 거 알지? –