JButton数组ActionListener

Rob*_*Fry 1 java swing event-handling jbutton actionlistener

简而言之,我想积累一堆JButton数组,并ActionListener为数组创建一个类.

我正在尝试创建一个计算器,并且所有编号的按钮(例如"6")都在一个JButton数组中,因为我希望它将设置的数字输入到一个临时的int中,并且创建一个更容易方法,而不是10.我还有40个其他按钮,我想应用相同的主体,但在不同的数组,所以它将更快更容易把这些ActionListener按钮数据放入几个方法实现了该方法.这是我的代码:

private JButton num0, num1, num2, num3, num4, num5, num6, num7, num8, num9;
private JButton numArray[] = {num0, num1, num2, num3, num4, num5, num6, num7, num8, num9};

        public GUI(){
          numArray.AddActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent event){

             }
       });
  }
Run Code Online (Sandbox Code Playgroud)

Pau*_*gas 6

你可以考虑Newb Monad的提议.但是,您可以对所有按钮使用相同的侦听器,如以下示例所示.

public static void main(String[] args) {

    ActionListener listener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() instanceof JButton) {
                String text = ((JButton) e.getSource()).getText();
                JOptionPane.showMessageDialog(null, text);
            }
        }
    };

    JPanel panel = new JPanel(new GridLayout(4,3));

    JButton[] array = new JButton[10];
    for (int i = 0; i < array.length; i++) {
        array[i] = new JButton(String.valueOf(i));
        array[i].addActionListener(listener);
        panel.add(array[i]);
    }

    JOptionPane.showMessageDialog(null, panel);

}
Run Code Online (Sandbox Code Playgroud)

对话

事件