title: java NullPointerException when trying to draw
body: <p>I'm trying to draw a picture based on a random array of numbers. So far I've had partial success, as the background color (white) does come up.</p>
  
  <p>However, the picture does not draw. Instead all I see is the white background and this error:</p>
  
  <pre><code>PixelAvatarGen
  XphnX
  Black and white or 8-bit color?
  0 = B&amp;W, 1 = 8bit
  1
  Print name to make into avatar.
  2
  5:2:7:0:3:6:7:0:6:7:7:3:1:4:0:6:5:1:7:4:0:0:5:6:6:3:0:2:3:7:2:4:7:5:4:2:3:6:0:1:4:1:6:4:1:1:1:5:7:5:1:5:4:0:4:5:1:5:6:0:5:4:6:0:0:6:0:0:0:6:7:5:2:6:4:0:1:1:1:7:0:2:1:4:0:2:3:3:3:3:2:6:6:2:6:4:2:7:5:4:7:3:3:3:1:5:1:6:1:3:4:6:0:1:1:2:5:7:4:1:0:2:4:4:4:6:3:7:7:1:0:6:3:6:3:7:6:5:2:5:5:3:5:3:5:4:4:7:0:5:7:4:2:4:5:7:1:0:3:2:7:7:2:3:5:5:2:7:5:6:6:7:4:3:0:7:4:7:1:0:0:7:4:4:3:7:6:0:4:2:7:6:7:3:2:4:2:7:3:0:5:6:6:7:7:2:2:0:2:5:7:6:5:1:0:6:1:5:2:0:7:0:7:0:4:1:0:3:4:3:7:7:4:4:2:7:0:7:4:7:1:6:1:4:4:2:4:7:3:0:4:4:6:6:3:5:
  Drawing11
  Exception in thread "AWT-EventQueue-0" Drawing11
  java.lang.NullPointerException
  at xphnx.pixelgen.Screen.paintComponent(Screen.java:25)
  at javax.swing.JComponent.paint(Unknown Source)
  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.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$200(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$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)
  Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  at xphnx.pixelgen.Screen.paintComponent(Screen.java:25)
  at javax.swing.JComponent.paint(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._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$200(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$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)
  </code></pre>
  
  <p>This is the complete output of the program. The "1" after 0 = B&amp;W and "2" after "Print name to..." are user input.</p>
  
  <p>Here is the Screen.java:</p>
  
  <pre><code>public class Screen extends JPanel {
  
    String[] pixels;
    Color[] proxlol;
  
    public Screen(String[] in1, Color[] in2) {
      in1 = pixels;
      in2 = proxlol;
    }
  
    public void paintComponent(Graphics g) {
      super.paintComponent(g);
      this.setBackground(Color.WHITE);
      int row = 1, column = 1, row10, column10;
      for(int i = 0; i != 256; i++) {
        System.out.println("Drawing" + row + column);
        g.setColor(proxlol[i]);
        if(i == 17 || 
            i == 33 || 
            i == 49 || 
            i == 65 || 
            i == 81 ||
            i == 97 ||
            i == 113 ||
            i == 129 ||
            i == 145 ||
            i == 161 ||
            i == 177 ||
            i == 193 ||
            i == 209 ||
            i == 225 ||
            i == 241
            ){
          row++;
          column = 1;
        }
        row10 = row*10;
        column10 = column*10;
        g.fillRect(row10, column10, 10, 10);
        System.out.println("Done drawing" + row + column);
        column++;     
      }
    }
  }
  </code></pre>
  
  <p>In case needed, <a href="http://pastebin.com/WkKea2q2" rel="nofollow">Main.java</a> and <a href="http://pastebin.com/Eh29zgjm" rel="nofollow">Arranger.java</a> are on pastebin.</p>
  
  <p>I've got little experience with Swing before. What's going on?</p>