ボード上の各正方形を表す 64 個の JPanel を持つチェス盤があります。ピースは、JPanels に配置された JLabels を使用して表されます。ボードからすべての JLabels を削除しようとしています。なぜこれが機能しないのか混乱しています:
private void removePieces()
{
for(int i = 0; i < 64; i ++)
{
Component c = chessBoard.getComponent(i);
if(c instanceof JLabel)
{
Container parent = c.getParent();
parent.remove((JLabel)c);
parent.revalidate();
parent.repaint();
}
}
}
chessboard は、64 個の JPanel が内部にある大きな JPanel です。いくつかのデバッグの後、if ループに入っていないように見えます。コンポーネントの 1 つが JLabel の場合、if ループに入らない理由がわかりません。