ActionListener para Vários Botões

2 respostas
M

Boa tarde,

Pessoal,

Estou com a seguinte duvida,

Tenho uma matriz de botoes[i][j].
Quero gerar entre eles, numeros randomicos.
E colocar neles ações diferentes.

Exemplo prático:

Matriz de botões na qual tenho diversos números:

[1] [40] [62] [34]
[57] [43][22][12]
[70][67][97][54]

Nos botoes pares quero ter uma ação, nos impares outra.

Alguem tem uma ideia?

Obrigado.

Meu Código:

//Exemplo de Matriz de botoes
JButton[][] botoes = new JButton[8][8];

		// Instacia todos os botões e coloca no JPanel do Campo
		for (int i = 0; i < 8; i++) {
			for (int j = 0; j < 8; j++) {
				botoes [i][j] = new JButton();							
				botoes [i][j].addActionListener(this);
			}
		}

2 Respostas

M

vc pode usar o setName do botao e colocar o valor nele, dae vc pega no evendo do botao o valor e a partir do resto da divisao vc sabe se eh impar o par.

N

É bem com o mauricio disse.
Você pode iterar sobre sua matriz, alterando o nome dos seus botões e adicionando um determinado listener dependendo de seu critério.

Algo assim:

JButton[][] botoes = new JButton[8][8];
Random random = new Random();
for (int I = 0; I < 8; ++I) {
    for (int J = 0; J < 8; ++J) {
      
        int randomico = random.nextInt(100);
        botoes[I][J] = new JButton();
        botoes[I][J].setText("Botão " + randomico);
        
        if ((randomico % 2) == 0)
            botoes[I][J].addActionListener(new ListenerBotoesPares());
        else
            botoes[I][J].addActionListener(new ListenerBotoesImpares());
    }
}



private class ListenerBotoesPares implements ActionListener {

    public void actionPerformed(ActionEvent event) {
        //Ação dos botões pares...
    }
}
private class ListenerBotoesImpares implements ActionListener {

    public void actionPerformed(ActionEvent event) {
        //Ação dos botões ímpares...
    }
}

Testa algo assim, abraço!

Criado 26 de setembro de 2011
Ultima resposta 26 de set. de 2011
Respostas 2
Participantes 3