g.setColor(Gome.singleton.options.gobanColor); g.fillRect(0, 0, delta + 1, delta + 1);
  private void calcDrawingPosition() {    int deltax = (drawArea.getWidth() - (MARGIN * 2)) / boardArea.getWidth();    int deltay = (drawArea.getHeight() - (MARGIN * 2)) / boardArea.getHeight();    delta = Math.min(deltax, deltay);    halfdelta = delta / 2;    // how big is the board actually drawn (inside the border)    boardWidth = (delta * boardArea.getWidth()) + (MARGIN * 2);    boardHeight = (delta * boardArea.getHeight()) + (MARGIN * 2);    // the top left cornor that we start drawing    boardX = drawArea.x0 + ((drawArea.getWidth() - boardWidth) / 2);    boardY = drawArea.y0 + ((drawArea.getHeight() - boardHeight) / 2);    // choose the biggest font possible for annotations    if (ANNOTATION_FONT_LARGE.getHeight() < delta) {      currentAnnotationFont = ANNOTATION_FONT_LARGE;    } else if (ANNOTATION_FONT_MEDIUM.getHeight() < delta) {      currentAnnotationFont = ANNOTATION_FONT_MEDIUM;    } else {      currentAnnotationFont = ANNOTATION_FONT_SMALL;    }    int size = delta + 1;    Image cachedStone = Image.createImage(size, size);    Graphics g = cachedStone.getGraphics();        whiteStoneRGB = new int[size * size];    blackStoneRGB = new int[size * size];        drawStone(g, 0, 0, Board.WHITE);    cachedStone.getRGB(whiteStoneRGB, 0, size, 0, 0, size, size);    drawStone(g, 0, 0, Board.BLACK);    cachedStone.getRGB(blackStoneRGB, 0, size, 0, 0, size, size);    int len = whiteStoneRGB.length;    for (int i = 0; i < len; i++) {      whiteStoneRGB[i] = 0x70000000 + (whiteStoneRGB[i] & 0x00FFFFFF); // get the color of the pixel.      blackStoneRGB[i] = 0x70000000 + (blackStoneRGB[i] & 0x00FFFFFF); // get the color of the pixel.    }  }