Addactionlistener akzeptiert keine Parameter

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Concentration extends JFrame implements ActionListener {

    private JButton buttons[][]=new JButton[4][4];
    int i,j,n;      

    public Concentration() {            
        super ("Concentration");    
        JFrame frame=new JFrame();
        setSize(1000,1000);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel=new JPanel(new GridLayout(4,4));
        panel.setSize(400, 400);            
        for( i=0; i<buttons.length; i++){
            for (j=0; j<buttons[i].length;j++){ 
                n=i*buttons.length+buttons[i].length;
                buttons[i][j]=new JButton();                    
                panel.add(buttons[i][j]);
                buttons[i][j].addActionListener(this);
            }
        }
        add(panel);
        pack();
        setVisible(true);       
    }

    public void actionPerformed(ActionEvent e) {            
        buttons[i][j].setIcon(new ImageIcon(
                 getClass().getResource("/images/2.jpg")));
    }

    public static void main(String args[]){
        new Concentration();
    }    
}

Das ist mein Code. Ich mache ein Gedächtnisspiel. Ich möchte, dass jedes Mal, wenn ich auf eine Schaltfläche klicke, diese Schaltfläche aber ein Bild anzeigt

 buttons[i][j].addActionListener(this);

in diesem Fall kann methot i und j nicht aufnehmen und zeigt kein Bild.

Aber zum Beispiel, wenn ich es tue

 buttons[2][2].addActionListener(this);

es zeigt nur in 2x2. Bild. Was kann ich tun, um das zu lösen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage