Помогите с buttonWatcher добавлением символов в arrayList - PullRequest
0 голосов
/ 12 января 2011
public class ButtonPanel extends JPanel
{
    private JButton[] buttons;
    private ArrayList<Character> playerSequence; 
    private static final Character firstChar = 'A';
    private static final Character lastChar = 'D';
    /** Creates a new instance of ButtonPanel */
    public ButtonPanel()
    {
        buttons = new JButton[4];
        playerSequence = new ArrayList<Character>();
        setLayout(new GridLayout(2,2)); 
        Character label = firstChar;
        for (JButton b: buttons)
        {
            b = new JButton("" + label);
            buttons[label - firstChar]= b;
            b.setActionCommand("" + label);
            label++;
            add(b);
            //adds an action listener to all 4 buttons
            b.addActionListener(new ButtonWatcher());  
        }

        setButtonsEnabled(true);
    }


public class ButtonWatcher implements ActionListener
{
   public void actionPerformed(ActionEvent b)
   {
      Object clicked = b.getActionCommand();
      if(clicked.equals("1"))
      {
        playerSequence.add('A');
      }
      if(clicked.equals("2"))
      {
          playerSequence.add('B');
      }
      if(clicked.equals("3"))
      {
         playerSequence.add('C');
      }
      if(clicked.equals("4"))
      {
         playerSequence.add('D');
      }

   }
}
}

Я пытаюсь получить этот код, поэтому, когда нажимается одна из кнопок 1-4, он добавляет AD в arrayList playerSequence, и, насколько я вижу, этого не происходит.Я что-то пропустил?

1 Ответ

3 голосов
/ 12 января 2011

Я думаю, что ваши операторы IF проверяют правильность строки actionCommand.
Вы устанавливаете actionCommand каждой кнопки на символы «A» - «D», но ваши операторы IF проверяют «1» - «4»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...