2013-04-26 6 views
1

Я пытаюсь создать набор кнопок Jbuttons в панели с цветом. каждый с различными текстовыми и цветовыми свойствами (нечестных из массива)Создание 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, потому что он не объявлен окончательным (доступ к локальному доступу 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

Вы можете просто создать 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.

Смежные вопросы