import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ButtonArray extends JFrame
    implements ActionListener {

    public static void main(String[] args) {
        new ButtonArray().run();
    }
    
    void run() {
        setLayout(new GridLayout(3, 3));
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                MyButton button = new MyButton(i, j);
                add(button);
                button.addActionListener(this);
            }
        }
        pack();
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void actionPerformed(ActionEvent event) {
        MyButton button = (MyButton)event.getSource();
        System.out.println(button.row + "  " + button.column);
    }

    class MyButton extends JButton {
        int row, column;
        
        MyButton(int i, int j) {
            super("[" + i + ", " + j + "]");
            row = i;
            column = j;
        }
    }
}
