2017-01-01 11 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より、この1の後にありますなぜレイアウトがあるのか​​を説明する(GridLayout(2,2))

レイアウトを変更する必要はありますか?

答えて

2

レイアウトへのコンポーネントの削除/追加はコスト高すぎます。私が理解から は、あなただけのイメージをtoogleたい:

は一つだけの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()); 
関連する問題