我正在尝试在带有颜色的面板中创建一组Jbutton。每个都有不同的文本和颜色属性(从数组中获取)
这是我的代码
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()));
}
除了按钮没有颜色外,它的工作原理都非常好。
最佳答案
您可以在将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
集合。在这种情况下,可以使用enhanced for loop。