1

色付きのパネルに一連の Jbuttons を作成しようとしています。それぞれ異なるテキストと色のプロパティを持つ (配列から取得)

ここに私のコードがあります

for(int e = 0;e<game.players.get(0).getHand().size();e++){
    panel.add(new JButton(){{
       setText(game.players.get(0).getHand().get(e).getValue());
       setBackground(game.players.get(0).getHand().get(e).getColor());
    }});
}

しかし、エラーが発生します。final と宣言されていないため、変数 e にアクセスできないと表示されます (ローカル アクセス e は内部クラス内からアクセスされます)。

私が行った場合

 for(int e = 0;e<game.players.get(0).getHand().size();e++){
   panel.add(new JButton(game.players.get(0).getHand().get(e).getValue()));
 }

ボタンに色がないことを除けば、問題なく動作します。

4

1 に答える 1

0

JButtonパネルに追加する前に、簡単に作成できます。

MyHand myHand = game.players.get(0).getHand();
for (int e=0; e < myHand.size(); e++) {
   JButton button = new JButton(myHand.get(e).getValue());
   button.setBackground(myHand.get(e).getColor());
   panel.add(button);
}

このコードから、コレクションgetHandを返すように見えます。Iterableその場合、拡張 for ループを使用できます。

于 2013-04-27T02:19:11.567 に答える