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());
    }});
}

但我得到一个错误。它说我无法访问变量 e,因为它没有被声明为 final(本地访问 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 回答