Java 带有actionListener的JButton数组…打印结果时出现问题

Java 带有actionListener的JButton数组…打印结果时出现问题,java,arrays,swing,jbutton,Java,Arrays,Swing,Jbutton,基本上,我为字母表中的每个字母创建了一个数组,然后将其添加到一个jbutton数组中。这很好,但是我现在尝试添加一个动作侦听器,我成功地使其工作 但是,它的工作原理是,我有26条if语句来检查每个按钮是否被按下,因此我尝试添加for循环 现在,当我按下按钮时,它会打印出一堆关于JbUTTON属性的垃圾。我哪里会出错 String[] letters = { "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F",

基本上,我为字母表中的每个字母创建了一个数组,然后将其添加到一个jbutton数组中。这很好,但是我现在尝试添加一个动作侦听器,我成功地使其工作

但是,它的工作原理是,我有26条if语句来检查每个按钮是否被按下,因此我尝试添加for循环

现在,当我按下按钮时,它会打印出一堆关于JbUTTON属性的垃圾。我哪里会出错

String[] letters = { "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M" };
    layout.add(scrollBar);
     for (int i=0; i < 26; i++)
     {

        if (i==25)
        {
            layout.add(spacebar);
            spacebar.setPreferredSize(new Dimension(310,50));
            spacebar.setBackground(Color.black);
            spacebar.setForeground(Color.white);
            spacebar.addActionListener(new action());
        }

         AlphaButton[i] = new JButton(letters[i]);
         AlphaButton[i].setPreferredSize(new Dimension(50,50));
         AlphaButton[i].setBackground(Color.black);
         AlphaButton[i].setForeground(Color.white);
         layout.add(AlphaButton[i]);
         AlphaButton[i].addActionListener(new action());
     }
    class action implements ActionListener
        {
            public void actionPerformed(ActionEvent e)
            {
                String V = screenArea.getText();

                for (int i=0; i < 26; i++)
                {
                    if( e.getSource() == AlphaButton[i] )
                    {
                        screenArea.setText(V + AlphaButton[i]);
                    }
                }

            }
        }
String[]字母={“Q”、“W”、“E”、“R”、“T”、“Y”、“U”、“I”、“O”、“P”、“A”、“S”、“D”、“F”、“G”、“H”、“J”、“K”、“L”、“Z”、“X”、“C”、“V”、“B”、“N”、“M”};
布局。添加(滚动条);
对于(int i=0;i<26;i++)
{
如果(i==25)
{
布局。添加(空格键);
spacebar.setPreferredSize(新尺寸(310,50));
空格键。背景(颜色。黑色);
空格键。设置前景(颜色。白色);
addActionListener(新操作());
}
AlphaButton[i]=新的JButton(字母[i]);
AlphaButton[i].setPreferredSize(新尺寸(50,50));
AlphaButton[i].背景(颜色.黑色);
AlphaButton[i]。设置前景(颜色。白色);
布局。添加(字母按钮[i]);
AlphaButton[i].addActionListener(新操作());
}
类操作实现ActionListener
{
已执行的公共无效操作(操作事件e)
{
String V=screenArea.getText();
对于(int i=0;i<26;i++)
{
如果(例如getSource()==AlphaButton[i])
{
screenArea.setText(V+字母按钮[i]);
}
}
}
}

您需要覆盖
alpha按钮
toString
方法

// your class
public class AlphaButton {

    @Override
    public String toString() {
        return "This is an AlphaButton";  // or whatever output you want it to say
    }
}

如果您需要返回按下的信函:

screenArea.setText(V + AlphaButton[i].getText);
为什么不干脆做:

public void actionPerformed(ActionEvent e) {
   String V = screenArea.getText();
   screenArea.setText(V + e.getActionCommand());
}

+现在我想了想,这似乎是OP想要的最合适最简单的答案。