Проблема в том, что черный и белый являются объектами JButton, и вы не можете добавить один и тот же объект более одного раза в JPanel.
Вам нужно создавать новый JButton каждый раз, когда вы добавляете. Вы можете создавать их на лету в цикле.
for (int i = 0; i < 8; i++) {
if (i % 2 == 0) {
for (int j = 0; j < 4; j++) {
p1.add(newButton("B", Color.Black));
p1.add(newButton("W", Color.White));
}
} else {
for (int j = 0; j < 4; j++) {
p1.add(newButton("W", Color.White));
p1.add(newButton("B", Color.Black));
}
}
}
Просто добавьте метод, чтобы сделать это.
private newButton(String label, Color background) {
JButton button = new JButton(label);
button.setBackground(background);
return button;
}