@Override public void paintComponent(Graphics g) { super.paintComponent(g); // draw boxes for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { if (gridModel[i][j].isFilled()) { g.fillRect(gridModel[i][j].x, gridModel[i][j].y, Box.size, Box.size); } else { g.drawRect(gridModel[i][j].x, gridModel[i][j].y, Box.size, Box.size); } } } // fill start g.setColor(Color.GREEN); g.fillRect(bStart.x, bStart.y, Box.size, Box.size); // fill end g.setColor(Color.PINK); g.fillRect(bEnd.x, bEnd.y, Box.size, Box.size); // fill path g.setColor(Color.red); for (int i = 0; i < path.size(); i++) { g.fillRect(path.get(i).x, path.get(i).y, Box.size, Box.size); } Toolkit.getDefaultToolkit().sync(); }