KeyListener

Pessoal… Tenho 20 JTextFields no meu formulario…

Em todos queria colocar um KeyListener, para a medida que a pessoa digitar algo em qualquer um deles, va fazendo um somatorio…
Para nao ficar repetindo a mesma coisa para os 20 jTextFields, eu resolvi fazer um vetor deles:

private JTextField [] fields = {txtA,txtB,txtC,txtD (...)

E depois tentei fazer isso (colocar o Listener em todos):

[code] for (int i=0; i<fields.length; i++) {
fields[i].addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
}

			@Override
			public void keyReleased(KeyEvent arg0) {
				float num = Float.parseFloat(fields[i].getText()); //ERROR
			}
			
			@Override
			public void keyPressed(KeyEvent arg0) {	
			}
		});
	}[/code]

Soh que da erro, fala que o i tem que ser final… Mas se ele for final eu nao posso incrementar ele (i++)
Como posso resolver essa situacao, sem repetir esse bloco de codigo acima 20 vezes?

Abraços.

Valew pessoal…
Consegui fazendo assim:

float num = Float.parseFloat(((JTextField) arg0.getComponent()).getText());

Pedro,

Uma outra solução simples para este caso é mudar o escopo da variável i.

private JTextField [] fields = {txtA,txtB,txtC,txtD (...)}; private int i;[code]for(i = 0; i < fields.length; i++) {
fields[i].addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
}

	@Override
	public void keyReleased(KeyEvent arg0) {
		float num = Float.parseFloat(fields[i].getText());
	}

	@Override
	public void keyPressed(KeyEvent arg0) {
	}
});

}[/code]Abraço.