Q:

Java Gui Gridlayout: Remove certain object and add another to its position

I'm creating a racing car game with Java and I'm stuck during the GUI part.  
Basically, in my game, you throw a die and one of the two cars move accordingly from position (9,0) towards position (0,0).  Whoever gets to (0,0) is the winner.  The problem is that the game is ready and everything is working perfectly, apart from the moving process.  I'm using a GridLayout to present the map to the user, and on the map there are 7 kind of objects: the roads, the obstacles, the gas stations, the END tile, the START tile as well as the 2 cars.  I use a generate method to randomly generate the map, and then pass it to the GUI class so it can do its job, showing the map to the user.  
However, I have no idea how to remove certain tiles from the map, so that I can show to the user where the car is located at.  I use images and then place them into labels.  My initial action, was to remove the whole component from the grid and add a new ImageIcon with the car.  Also, I am aware of the method ".setIcon" but how do I know which ImageIcon to edit? 
The generate method. 
    public void generate(){
    int result;
    int greenCounter = 0;
    int blackCounter = 0;
    for (int i = 0; i < tiles.length; i++){
        for (int j = 0; j < tiles.length; j++){
            result = (int)(Math.random()*23 + 1);
            if (i == 0 && j == 0) tiles[i][j] = new Start();
            else if (i == 9 && j == 0) tiles[i][j] = new End();
            else if (result > 2) tiles[i][j] = new Grey();
            else if (result == 1) {
                blackCounter++;
                if (blackCounter <=6) tiles[i][j] = new Black();
                else tiles[i][j] = new Grey();
            }
            else if (result == 2){
                greenCounter++;
                if (greenCounter <=6) tiles[i][j] = new Green();
                else tiles[i][j] = new Grey();
            }
        }
    }
}

The map creation inside the GUI constructor:
for(int i = 0; i < tiles.length; i++){
        for(int j = 0; j < tiles.length; j++){
            if(tiles[i][j] instanceof Green) {
                roadGas = new ImageIcon ("road/road_gas.jpg");
                roadGasLb = new JLabel(roadGas);
                tilesPanel.add(roadGasLb);
            }
            else if(tiles[i][j] instanceof Grey){
                road = new ImageIcon ("road/road.jpg");
                roadLb = new JLabel(road);
                tilesPanel.add(roadLb);
            } 
            else if(tiles[i][j] instanceof Black){
                roadObstacle = new ImageIcon("road/road_obstacle.jpg");
                roadObstacleLb = new JLabel(roadObstacle);
                tilesPanel.add(roadObstacleLb);
            } 
            else if (i == 9 && j==0) {
                roadStart = new ImageIcon ("road/roadStart_car.jpg");
                roadStartLb = new JLabel(roadStart);
                tilesPanel.add(roadStartLb);
            }   
            else if (i == 0 && j == 0) {
                roadEnd = new ImageIcon ("road/roadEnd.jpg");
                roadEndLb = new JLabel(roadEnd);
                tilesPanel.add(roadEndLb);
            } 
        }
    }

How the car is supposed to be shown while moving inside the map.  I know there is no way this can work but I have no idea what to do. 
                carLocation = nissan.getCarLocation();
                int x;
                int y;
                for (int i = 0; i < carLocation.length; i++){
                    for (int j = 0; j < carLocation.length; j++){
                        if (carLocation[i][j] ! = null){
                            if (tiles[i][j] instanceof Black) tiles[i][j].action(nissan);;
                            if (tiles[i][j] instanceof Grey) tiles[i][j].action(nissan);
                            if (tiles[i][j] instanceof Green) tiles[i][j].action(nissan);
                            x = i;
                            y = j;
                            if (x % 2 == 0){
                                roadCar = new ImageIcon ("road/road_GTR_right.jpg");
                                roadCarLb = new JLabel(roadCar);
                                tilesPanel.add(roadCarLb,x,y);
                                contentPanel.add(tilesPanel, BorderLayout. CENTER);
                            }
                            else {
                                roadCar = new ImageIcon ("road/road_GTR_left.jpg");
                                roadCarLb = new JLabel(roadCar);
                                tilesPanel.add(roadCarLb,x,y);
                                contentPanel.add(tilesPanel, BorderLayout. CENTER);
                            }
                            break;
                        }

How the map looks:
Thanks in advance and I appreciate any answers. 

A:

However, I have no idea how to remove certain tiles from the map, so that I can show to the user where the car is located at. 

Well you should not the "grid" where the component is located by using the row/column values.  Then you can remove/add the component to the panel using the remove(...) and add(...) methods of the Container.  Something like:
int index = (rowIndex * cellsInRow) + columnIndex. 
panel.remove(index);
panel.add(component, index);
panel.revalidate();
panel.repaint();

Or even easier is to just replace the Icon of the label using the 
label.setIcon(...) method.