I am trying to make a slightly modified version of checkers for a final project, however I am getting a strange error whenever I run anything related to graphics: 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
    at Board.drawBoard(TacticalCheckers.java:45)
    at TacticalCheckers.paint(TacticalCheckers.java:14)
    at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
    at sun.awt.RepaintArea.paint(RepaintArea.java:240)
    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:358)
    at java.awt.Component.dispatchEventImpl(Component.java:4967)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
My code:
// TacticalCheckers.java
import java.awt.*;
import java.applet.*;
import java.util.*; 
public class TacticalCheckers extends Applet
{
    public void paint(Graphics g){
        Board.drawBoard(g);
    }
}
class Square
{
    private Color clr;
    public void drawSquare(Color clr,Graphics g,int r,int c){
        clr = this.clr;
        g.setColor(clr);
        g.drawRect(r*90,c*90,(r+1)*90,(c+1)*90);
    }
}
class Board
{
    private static Color green = new Color(167,254,138);
    private static Color tan = new Color(222,184,135);
    private static Square board[][] = new Square[8][8];
    public static void drawBoard(Graphics g){
        for(int r = 0; r < 8; r++){
            for(int c = 0; c< 8; c++){
                if(((r%2 == 0) && (c%2 == 0)) || ((r%2 == 1) && (c%2 == 1))){
                    board[r][c].drawSquare(green,g,r,c);
                }else{
                    board[r][c].drawSquare(tan,g,r,c);
                }
             }
          }   
       }
    }
I have tried re-installing the IDE (j-grasp) as well and the jre and jdk, but I still get the same error. I have also gotten very similar errors (the only difference being the file/method names) on other graphics programs, which I know used to work. Does anyone know what this error means or more importantly know how to solve it? Thank you for your time! - Fr3d
