Reconhecer JButton em matriz

Olá… Sou novo no fórum e preciso de uma ajuda em um trabalho…
Criei uma matriz de JButtons e não consigo reconhecer o JButton clicado. Preciso colocar um evento nele.
Se puderem me ajudar!!
Vlw

existe vários modos

mais o que eu acho mais conveniente é criar um 2 loop para percorrer todos os objetos da matriz e dar um addActionListener(this); para todos eles

dai você implementa a interface ActionListener e implementa o seu metodo actionPerformed

DICA: usar o getSource() para identificar qual botão disparou o evento e até mesmo usar os seu métodos como o getText() para pegar o texto do JButton

até

resolvi para deixar mais claro fazer um exemplo e ai vai

[code]public class matrisDeBotoes extends JFrame implements ActionListener{

public static JButton[][] matrizBotoes;

public matrisDeBotoes(){
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	
	matrizBotoes = new JButton[2][2];
	
	getContentPane().setLayout(new GridLayout(2,2));
	
	for(int i=0; i<matrizBotoes.length; i++){
		for(int j=0; j<matrizBotoes[i].length; j++){
			matrizBotoes[i][j] = new JButton();
			matrizBotoes[i][j].setText("Botão da linha "+(i+1)+" coluna "+(j+1));
			matrizBotoes[i][j].addActionListener(this);
			getContentPane().add(matrizBotoes[i][j]);
		}
	}
	setSize(500,300);
	setVisible(true);
}

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

}

@Override
public void actionPerformed(ActionEvent e) {
	((JButton)e.getSource()).setEnabled(false);
	JOptionPane.showMessageDialog(this, ((JButton) e.getSource()).getText()+" foi clicado");
	((JButton)e.getSource()).setText("Já clicado");		
}

}[/code]

se não entender algo e só perguntar

até!

Cara Valew mesmo… entendi como funciona… Mas ta com erro no "matrizBotoes[i][j].addActionListener(this);"

Tentei fazer do jeito que está no seu

public class JogoMatriz extends JFrame implements ActionListener mas também da erro…

Tem como me ajudar com isso?

estranho aqui funcionou legal

você fez todos os imports?
posta o erro aqui pra nos possamos corrigir o código

até

Olha o erro:

C:\Users\Edgar\Desktop\trabalho\Jogo da memoria\jogo.java:56: addActionListener(java.awt.event.ActionListener) in javax.swing.AbstractButton cannot be applied to (classes.JogoMemoria) bot[i][j].addActionListener(this);

Valew pela força!!

não consegui entender o erro (não sou bom com isso hahaha) poderias postar o código completo da sua class para eu rolar aqui e tentar localizar o erro
só uma pergunta você esta usando alguma IDE? se estiver ela não acusou nenhum erro antes de você compilar?

Eu tenho que fazer um jogo de memória. Mas mal comecei…
Dá uma olhada no código…

[code]package classes;
import javax.swing.;
import java.awt.
;
import java.awt.image.;
import java.awt.event.
;
import java.util.Random;
import javax.swing.event.*;

class JogoMemoria extends JFrame {

JButton[][]bot;
    JLabel l1;

JogoMemoria(){

	super("Jogo da Memória");
	setSize(600,400); 
	setVisible(true);
	setLayout(new GridLayout(5,5));
    	configuraJogo();

}

public void configuraJogo(){
	
	l1 = new JLabel("");
	bot  = new JButton[5][5];  		

int a=10;
for(int i=0;i<5;i++){
int b=10;
for(int j=0;j<5;j++){
bot[i][j]= new JButton("");
bot[i][j].addActionListener(this);
getContentPane().add(bot[i][j]).setBounds(a,b,45,45);
b=b+60;
}
a=a+60;
}

public void actionPerformed(ActionEvent e) {
((JButton)e.getSource()).setEnabled(false);
JOptionPane.showMessageDialog(this, ((JButton) e.getSource()).getText()+" foi clicado",ALERT.Message);
((JButton)e.getSource()).setText(“Já clicado”);
}
});
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setIconImage(new ImageIcon(“icons/flash.png”).getImage());
}

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

}[/code]

Valew!!

Ahh eu uso o JCreator!!
Vlw

a única coisa que notei de errado é que você não implementou ActionListener e não entedi p porque do actionPerformed dentro do construtor (se ele é um novo método) você deve ter confundido com quando se cria a ActionListener dentro do addActionListener e se sobre escreve o método actionPerformed esse o outro modo só que teria que ser aplicado a cada JButtun o modo que propus é um actionPerformed para todos os JButtuns mas de qualquer modo o código ta corrigido ai em baixo até

[code]import javax.swing.;
import java.awt.
;
import java.awt.image.;
import java.awt.event.
;
import java.util.Random;
import javax.swing.event.*;

@SuppressWarnings(“serial”)
class JogoMemoria extends JFrame implements ActionListener{

JButton[][]bot;  
JLabel l1;  

JogoMemoria(){  

	super("Jogo da Memória");  
	setSize(600,400);   
	setVisible(true);  
	setLayout(new GridLayout(5,5));  
	configuraJogo();  
}  

public void configuraJogo(){  

	l1 = new JLabel("");  
	bot  = new JButton[5][5];         

	int a=10;  
	for(int i=0;i<5;i++){  
		int b=10;  
		for(int j=0;j<5;j++){  
			bot[i][j]= new JButton("");  
			bot[i][j].addActionListener(this);  
			getContentPane().add(bot[i][j]).setBounds(a,b,45,45);  
			b=b+60;  
		}  
		a=a+60;  
	}  
	setLocationRelativeTo(null);   
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
	setIconImage(new ImageIcon("icons/flash.png").getImage());   
}
public void actionPerformed(ActionEvent e) {    
	((JButton)e.getSource()).setEnabled(false);    
	JOptionPane.showMessageDialog(this, ((JButton) e.getSource()).getText()+" foi clicado");    
	((JButton)e.getSource()).setText("Já clicado");         
}       

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

}[/code]

OBS: nunca usei JCreator mais eu recomendo eclipse

Valew pela ajuda cara… Vou ver o que vira agora…
Obrigado