Удаление JLabels с тем же именем - PullRequest
0 голосов
/ 21 июня 2011

Я играю в игру «4 в ряд» и добавляю красную или зеленую фигуру в качестве метки, но всегда одну и ту же метку в панельную игру. Мой код такой (соответствующий)

labeljogo = new JLabel(new ImageIcon( bola ));

if(f.getSource()==setaL1 && c1==6 && modoDeJogo==2 || setaPc=="setaL1" && c1==6 && modoDeJogo==3 && jogadorActual==2 || f.getSource()==setaL1 && c1==6  && modoDeJogo==3 && jogadorActual==1 || modoDeJogo==4 && setaPc=="setaL1" && c1==6)
    {
        labeljogo.setBounds(150, 100, 60, 60);
        c1++;
        matrix[1][0]=jogadorActual;
    }
if(f.getSource()==setaL1 && c1==6 && modoDeJogo==2 || setaPc=="setaL1" && c1==6 && modoDeJogo==3 && jogadorActual==2 || f.getSource()==setaL1 && c1==6  && modoDeJogo==3 && jogadorActual==1 || modoDeJogo==4 && setaPc=="setaL1" && c1==6)
    {
        labeljogo.setBounds(150, 100, 60, 60);
        c1++;
        matrix[1][0]=jogadorActual;
    }

(...) и продолжается до тех пор, пока все 8 * 8 фигур не окажутся на панели

изображение бола меняется при смене игрока.

Я сомневаюсь, есть ли способ очистить все эти JLabels, которые имеют одинаковое имя. Потому что, когда я звоню

 panel.remove(labeljogo);

Удаляет только последний.

Есть ли способ удалить этот JLabels, не затрагивая другие JLabels?

1 Ответ

0 голосов
/ 22 июня 2011
for(int i=0; i<Main.panel.getComponentCount (); i++)
    if(Main.panel.getComponent(i).getBounds ( ).height==60)
        Main.panel.getComponent(i).setVisible(false);

использовал этот метод для удаления JLabel s по высоте.Работало нормально.

...