2017-01-01 14 views
0

這裏是我想要編輯的代碼:我想用另一個JLabel替換JLabel,但保持在同一位置,這可能嗎?

 game = new JPanel(); 
     ImageIcon bbb = new ImageIcon("bbb.gif"); 
     JLabel bbbl = new JLabel(bbb); 
     ImageIcon bbbH = new ImageIcon("bbbH.gif"); 
     JLabel bbbHl = new JLabel(bbbH); 
     game.setLayout(new GridLayout(2,2)); 
     game.add(bbol); 
     game.add(bbgl); 
     game.add(bbgrl); 
     game.add(bbbl); 
     if (flashed == 1) 
     { 
     game.remove(bbol); 
     game.add(bboHl); 
     } 
     else 
     { 
     } 

我想選擇JLabel bboHl在相同的位置去作爲一個JLabel bbol但有這一個接其他的JLabel,3個準確的說,因此解釋了爲什麼佈局是(GridLayout(2,2))

我需要更改佈局嗎?

回答

2

刪除/添加組件的佈局太貴了。 從我的理解,你只是想要一個圖像:

只添加一個JLabel,並使用setIcon上它來改變圖像。

game = new JPanel(); 
    ImageIcon bbb = new ImageIcon("bbb.gif"); 
    ImageIcon bbbH = new ImageIcon("bbbH.gif"); 
    JLabel bbbl = new JLabel(bbb); 

    game.setLayout(new GridLayout(2, 2)); 
    game.add(bbol); 
    game.add(bbgl); 
    game.add(bbgrl); 
    game.add(bbbl); 
    if (flashed == 1) { 
     bbbl.setIcon(bbbH); 
    } else { 
     bbbl.setIcon(bbb); 
    } 
+0

非常感謝! – WillA

0

讓我們說,如果有多個標籤就像label1label2label3等,並要設置它們的標籤bbo1的位置。然後可以通過獲取標籤bbo1的位置並將其設置爲所有其他標籤來完成。

對於實例

label1.setLocation(bbo1.getLocation()); 
label2.setLocation(bbo1.getLocation()); 
label3.setLocation(bbo1.getLocation());