Sou iniciante em java, e não achei a minha duvida neste fórum.
Tenho um vetor de JButtons e adicionei ActionListener em cada um deles, e gostaria que ao “clik” do mouse em algum dos botões, apenas este se modificasse (mudaria o ícone do botão), só que eu não sei como identificar qual botão foi “clikado”, para que apenas este seja mudado.
O programa a seguir muda o ìcone de todos os botões através de um for.
Não sei estou indo pelo melhor caminho.
[code]import javax.swing.;
import java.awt.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Interface extends JFrame implements ActionListener{
JPanel painel = new JPanel();
JButton[][] botao = new JButton[10][10];
public void inicializarBotoes() {
for(int cont1 = 0; cont1 < botao.length; cont1++){
for(int cont2 = 0; cont2 < botao[cont1].length; cont2++) {
botao[cont1][cont2] = new JButton();
}
}
}
public void determinarTamanhoBotoes() {
for(int cont1 = 0; cont1 < botao.length; cont1++){
for(int cont2 = 0; cont2 < botao[cont1].length; cont2++) {
botao[cont1][cont2].setPreferredSize(new Dimension(25, 25));
}
}
}
public void adicionarEvento() {
for(int cont1 = 0; cont1 < botao.length; cont1++){
for(int cont2 = 0; cont2 < botao[cont1].length; cont2++) {
botao[cont1][cont2].addActionListener(this);
}
}
}
public void actionPerformed(ActionEvent event){
for(int cont1 = 0; cont1 < botao.length; cont1++){
for(int cont2 = 0; cont2 < botao[cont1].length; cont2++) {
botao[cont1][cont2].setIcon(new ImageIcon("Caminho da Imagem"));
}
}
}
public void adicionarBotoes() {
painel.setLayout(new GridLayout(10, 10));
for(int cont1 = 0; cont1 < botao.length; cont1++){
for(int cont2 = 0; cont2 < botao[cont1].length; cont2++) {
painel.add(botao[cont1][cont2]);
}
}
getContentPane().add(painel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String args[])
{
Interface teste = new Interface();
teste.inicializarBotoes();
teste.adicionarEvento();
teste.determinarTamanhoBotoes();
teste.adicionarBotoes();
}
}
[/code]