Chess GUI Java Swings code needs fixing My Taken Pieces Panel clusters ugly with the pieces.

Here's my code :

class TakenPiecesPanel extends JPanel {
private final JPanel northPanel;
private final JPanel southPanel;
private final Dimension TAKEN_PIECES_DIMENSION = new Dimension(80, 80);

TakenPiecesPanel(){
    super(new BorderLayout());
    this.setBorder(PANEL_BORDER);
    this.northPanel = new JPanel(new GridLayout(8, 2));
    this.southPanel = new JPanel(new GridLayout(8, 2));
    this.add(this.northPanel, BorderLayout.NORTH);
    this.add(this.southPanel, BorderLayout.SOUTH);
    setPreferredSize(TAKEN_PIECES_DIMENSION);
}

void redo(final MoveLog movelog){
    this.northPanel.removeAll();
    this.southPanel.removeAll();

    for(final Piece takenPiece: whiteTakenPieces){
            final BufferedImage image = ImageIO.read(new File(BoardUtils.ICONS_PATH +
                    takenPiece.getPieceColor().toString().substring(0,1)+
                    takenPiece.toString()+".gif"));
            final ImageIcon icon = new ImageIcon(image);
            /*This didn't work too 
            final JLabel imageLabel = new JLabel(new ImageIcon(ic.getImage().getScaledInstance(
                    ic.getIconWidth() - 15, ic.getIconWidth() - 15, Image.SCALE_SMOOTH)));*/
            this.southPanel.add(imageLabel);
            this.southPanel.add(new JLabel(icon));
    }
    validate();
}
}


The images are displayed in a single column and when the number exceeds the column limit, they are displayed in the adjacent column. This is when the panel gets ugly.

I'm a beginner in GUI programming. I've tried increasing the panel size but it won't work. Please help me out.
Your GUI design is bad. I'd just do this:

White pawn x3
White queen x1
Black pawn x2
....


Draw a chess piece and add a number to it's top-right corner. It's like how iOS and Android show the number of unread SMS messages you have.

Nobody wants to count the number of pawns in your panel. Just add a number.