Captura de Eventos [RESOLVIDO]

3 respostas
C

Boa noite Prezado,

Alguém teria, alguma sugestão de como reduzir o código abaixo?

@Override
	public void actionPerformed(ActionEvent e) {
		// captura do evento do mouse, sobre os botões
		// MELHORAR ESTE PALAVRÃO
		if (e.getSource() == bt[1]) {
			bt[1].setEnabled(false);		
		}
		if (e.getSource() == bt[2]) {
			bt[2].setEnabled(false);
		}
		if (e.getSource() == bt[3]) {
			bt[3].setEnabled(false);
		}
		if (e.getSource() == bt[4]) {
			bt[4].setEnabled(false);
		}
		if (e.getSource() == bt[5]) {
			bt[5].setEnabled(false);
		}
		if (e.getSource() == bt[6]) {
			bt[6].setEnabled(false);
		}
		if (e.getSource() == bt[7]) {
			bt[7].setEnabled(false);
		}
		if (e.getSource() == bt[8]) {
			bt[8].setEnabled(false);
		}
		if (e.getSource() == bt[9]) {
			bt[9].setEnabled(false);
		}
	}

Agradeço a todos…

3 Respostas

ViniGodoy

Não é óbvio? Só usar um for...

@Override
public void actionPerformed(ActionEvent e) {
   // captura do evento do mouse, sobre os botões
   
   for (int i = 1; i < 10; i++) {
      if (e.getSource() == bt[i]) {
         bt[i].setEnabled(false);		
      }
   }
}
eberson_oliveira

Eu ainda adicionaria a seguinte linha no exemplo dado pelo ViniGodoy, pois aparentemente esse método vai desabilitar apenas um botão a cada invocação.

@Override  
 public void actionPerformed(ActionEvent e) {  
     // captura do evento do mouse, sobre os botões  
 
    for (int i = 1; i < 10; i++) {  
       if (e.getSource() == bt[i]) {  
          bt[i].setEnabled(false);         
          return; // assim  evita que ele continue iterando mesmo após ter encontrado o botão
       }  
    }  
}

Por favor, me corrijam se eu estiver errado.

Espero ter ajudado,

[]

C

Agradeço, pela ajuda de todos.

Criado 24 de setembro de 2008
Ultima resposta 25 de set. de 2008
Respostas 3
Participantes 3