Desenhando várias linhas em um BufferedImage

Estou tentando desenhar linhas horizontais e verticais em uma imagem em buffer. Ele deve acabar parecendo uma grade de células. Mas quando executo o código, vejo apenas duas linhas: a linha mais à esquerda e a linha mais alta (ou seja, uma linha de 0,0 a 0, altura da imagem e 0,0 à largura da imagem, 0) Aqui está o trecho de código :

  BufferedImage mazeImage = new BufferedImage(imgDim.width, imgDim.height, BufferedImage.TYPE_INT_RGB);
  Graphics2D g2d = mazeImage.createGraphics();
  g2d.setBackground(Color.WHITE);
  g2d.fillRect(0, 0, imgDim.width, imgDim.height);
  g2d.setColor(Color.BLACK);
  BasicStroke bs = new BasicStroke(2);
  g2d.setStroke(bs);
  // draw the black vertical and horizontal lines
  for(int i=0;i<21;i++){
   g2d.drawLine((imgDim.width+2)*i, 0, (imgDim.width+2)*i,  imgDim.height-1);
   g2d.drawLine(0, (imgDim.height+2)*i, imgDim.width-1, (imgDim.height+2)*i);
  }

E o método de pintura substituído:

public void paint(Graphics g) {
  g.drawImage(mazeImage, 0, 0, this);
}

Isso tudo ocorre em uma classe chamada RobotMaze que estende o JPanel. Qualquer ajuda é apreciada.

questionAnswers(3)

yourAnswerToTheQuestion