2011-06-21 200 views
0

我正在做一個4連續的遊戲,並且我將紅色或綠色作爲標籤添加到面板遊戲中,但始終是相同的標籤。我的代碼是這樣的(相關的)刪除具有「相同」名稱的JLabels

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個是在面板

通過改變玩家的圖像博拉變化。

我的疑問是,如果有任何方法清理所有這些都具有相同名稱的JLabel。因爲當我打電話

panel.remove(labeljogo); 

它只會刪除最後一個。

有沒有任何方法可以在不影響其他JLabel的情況下移除此JLabels?

+0

不要使用「==」來比較字符串。使用equals(...)方法。 – camickr

+0

對一個標籤使用html而不是對不同顏色的多個標籤可能更好? – StanislavL

+0

有點棘手在Java中使用html Swing不? – Lucky

回答

0
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。它運行良好。