2

ボード上の各正方形を表す 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 ループに入らない理由がわかりません。

4

3 に答える 3