I am trying to display a `JLabel` of a message below a grid of displayed squares (each square is a `JLabel`). When I don't try to add the message to the `JPanel`, the **4x4** grid of squares displays just fine. However, when I try and add the message `JLabel` below or above the grid, what happens is that the Grid of squares becomes split in two (after the first column of squares), such that one column of squares displays on the left, then there is a gap, and then the other three columns of squares are displayed. The message displays beneath. Why does adding this message cause the grid of squares to split like this? I have put my code below. Thank you in advance for any help. 

```
public void displayGrid(JButton button) {

    JLabel instructionsLabel = new JLabel ("Select the locations of the four objects that you saw previously. Be careful - when you select one box, you can't take it back.");

    try {
        squareImage = ImageIO.read(this.getClass().getResource("stimulus(0).gif"));  

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    for(int i = 0; i < 16; i++){
        c.gridx = i % 4;
        c.gridy = i / 4;
        squareLabels[i] = new JLabel(new ImageIcon(squareImage));
        panel.add(squareLabels[i], c);
        squareLabels[i].addMouseListener(this);
    }

    panel.validate();

    c.gridy += 1;
    c.gridx = 0;
    panel.add(instructionsLabel, c);
    panel.validate();
}

```