public void paintComponent(Graphics g) {
	super.paintComponent(g);
	g.setColor(Color.BLACK);
	for(int c = 0; c < dim; c++) {
	    for(int r = 0; r < dim; r++) {
		if(isBarrier(c,r)){
		    g.setColor(Color.RED);
		    g.fillRect(xPositions[c]+1, yPositions[r]+1,width,width);
		    g.setColor(Color.BLACK);
		} else if( ((r*dim) + c) == startPosition) {
		    g.setColor(Color.BLUE);
		    g.fillRect(xPositions[c]+1, yPositions[r]+1,width,width);
		    g.setColor(Color.BLACK);
		} else if( ((r*dim) + c) == goalPosition) {
		    g.setColor(Color.GREEN);
		    g.fillRect(xPositions[c]+1, yPositions[r]+1,width,width);
		    g.setColor(Color.BLACK);
		} else if(isPath(c,r)) {
		    g.setColor(Color.CYAN);
		    g.fillRect(xPositions[c]+1, yPositions[r]+1,width,width);
		    g.setColor(Color.BLACK);
		} else if(isVisited(c,r)) {
		    g.setColor(Color.YELLOW);
		    g.fillRect(xPositions[c]+1, yPositions[r]+1,width,width);
		    g.setColor(Color.BLACK);
		} 
		g.drawRect(xPositions[c]+1, yPositions[r]+1,width,width);
	    }
	}
    }