Java buttonWatcher向arrayList添加字符的帮助 公共类按钮Panel扩展了JPanel { 私有JButton[]按钮; 私人ArrayList playerSequence; 私有静态最终字符firstChar='A'; 私有静态最终字符lastChar='D'; /**创建ButtonPanel的新实例*/ 公共按钮面板() { 按钮=新的JButton[4]; playerSequence=新阵列列表(); setLayout(新的GridLayout(2,2)); 字符标签=firstChar; 用于(JButton b:按钮) { b=新的按钮(“+”标签); 按钮[标签-第一字符]=b; b、 setActionCommand(“+”标签); label++; 添加(b); //向所有4个按钮添加操作侦听器 b、 addActionListener(新的ButtonWatcher()); } setButtonsEnabled(真); } 公共类ButtonWatcher实现ActionListener { 已执行的公共无效操作(操作事件b) { 单击的对象=b.getActionCommand(); 如果(单击。等于(“1”)) { playerSequence.add('A'); } 如果(单击。等于(“2”)) { playerSequence.add('B'); } 如果(单击。等于(“3”)) { playerSequence.add('C'); } 如果(单击。等于(“4”)) { playerSequence.add('D'); } } } }

Java buttonWatcher向arrayList添加字符的帮助 公共类按钮Panel扩展了JPanel { 私有JButton[]按钮; 私人ArrayList playerSequence; 私有静态最终字符firstChar='A'; 私有静态最终字符lastChar='D'; /**创建ButtonPanel的新实例*/ 公共按钮面板() { 按钮=新的JButton[4]; playerSequence=新阵列列表(); setLayout(新的GridLayout(2,2)); 字符标签=firstChar; 用于(JButton b:按钮) { b=新的按钮(“+”标签); 按钮[标签-第一字符]=b; b、 setActionCommand(“+”标签); label++; 添加(b); //向所有4个按钮添加操作侦听器 b、 addActionListener(新的ButtonWatcher()); } setButtonsEnabled(真); } 公共类ButtonWatcher实现ActionListener { 已执行的公共无效操作(操作事件b) { 单击的对象=b.getActionCommand(); 如果(单击。等于(“1”)) { playerSequence.add('A'); } 如果(单击。等于(“2”)) { playerSequence.add('B'); } 如果(单击。等于(“3”)) { playerSequence.add('C'); } 如果(单击。等于(“4”)) { playerSequence.add('D'); } } } },java,arraylist,Java,Arraylist,我正在尝试获取这段代码,因此当单击其中一个按钮1-4时,它会将A-D添加到arrayList playerSequence,据我所知,这并没有发生。我遗漏了什么吗?我认为您的IF语句正在检查错误的actionCommand字符串。 您将每个按钮的actionCommand设置为字符“A”-“D”,但您的IF语句检查“1”-“4”我认为您的IF语句检查的actionCommand字符串是错误的。 您将每个按钮的actionCommand设置为字符“A”-“D”,但您的IF语句检查“1”-“4”为什

我正在尝试获取这段代码,因此当单击其中一个按钮1-4时,它会将A-D添加到arrayList playerSequence,据我所知,这并没有发生。我遗漏了什么吗?

我认为您的IF语句正在检查错误的actionCommand字符串。

您将每个按钮的actionCommand设置为字符“A”-“D”,但您的IF语句检查“1”-“4”

我认为您的IF语句检查的actionCommand字符串是错误的。

您将每个按钮的actionCommand设置为字符“A”-“D”,但您的IF语句检查“1”-“4”

为什么您认为这不会发生?您发布的所有代码都没有使用
ArrayList
。您如何知道它没有发生?if语句是否没有使用ArrayList playerSequence向其中添加字符?@user445714-如果我们没有实际执行并调试代码,很难知道。您能否提供实际使用ArrayList的代码,以便我们检查问题是否存在?您认为为什么不会发生这种情况?您发布的所有代码都没有使用
ArrayList
。您如何知道它没有发生?if语句是否没有使用ArrayList playerSequence向其中添加字符?@user445714-如果我们没有实际执行并调试代码,很难知道。你能提供实际使用ArrayList的代码吗,这样我们就可以检查问题是否存在?非常感谢你,这是一个非常愚蠢的错误,我必须在寻找我做错了什么的时候考虑更简单,而不是去寻找更大的问题。再次感谢你,这对我来说是一个非常愚蠢的错误,当我在寻找我做错了什么而不是去寻找更大的问题时,我必须想得更简单一些。再次感谢
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');
      }

   }
}
}