Я кодирую карточную игру UNO, я создал массив с JButtons, размер которого будет изменяться, JButtons представляют руку игрока и все различные карты в ней. Когда кнопки создаются в первый раз, все работает, но когда я добавляю одну карту и расширяю массив, кнопки actionListener ломаются. Я думаю, что когда кнопки создаются во второй раз, actionListners создается локально, а не глобально. Я понятия не имею, как решить проблему, поэтому, пожалуйста, помогите! xd
// playerHandButtons = the array with the buttons that is recreated
// playerHand = a stack that contains the players cards in the hand
// when the array is created for the first time
JButton [] playerHandButtons = new JButton[7];
// you start with 7 cards
public void createArray() {
JButton[] playerHandButtons = new JButton[playerHand.size()];
for (int i = 0; i < playerHandButtons .length; i++) {
playerHandButtons [i] = new JButton("" + playerHand.elementAt(i));
player.add(playerHandButtons [i]);
playerHandButtons [i].addActionListener(this);
}
}
// player = is the panel that displays all the cards
public void createHand() {
player.removeAll();
player.repaint();
player.revalidate();
JButton[] playerHandButtons = new JButton[playerHand.size()];
for (int i = 0; i < playerHandButtons .length; i++) {
playerHandButtons [i] = new JButton("" + playerHand.elementAt(i));
player.add(playerHandButtons [i]);
playerHandButtons [i].addActionListener(this);
}
}