我正在尝试在带有颜色的面板中创建一组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()));
}
除非按钮没有颜色,否则效果非常好。
答案 0 :(得分: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
似乎返回{{1}}个集合。在这种情况下,可以使用enhanced for loop。