JNumberField

3 respostas
erico_kl

Olá…
Tenho uma classe JNumberField de um pacote de APIs q vem junto com o iReport 3. Essa classe herda de JTextField e é uma classe muito util para mim mas ela tem um problema no foco… queria que quando eu pressionasse Enter o foco caísse sobre esse JNumberField… faço isso com qualquer componente mas nessa classe parece que já existe alguma implementação para o Enter no campo pois consigo dar o foco com qualquer outra tecla q nao seja o enter…

//evento keyReleased do JNumberField
...
if (evt.getKeyCode==evt.VK_ENTER) {
    campo.requestFocus();
}

como eu disse… desse jeito consigo dar o foco a partir de qualquer componente, menos do JNumberField
como eu poderia resolver esse problema?
obrigado…

3 Respostas

M

Pelo que entendi, você quer o evento padrão não seja processado? Se for isso, basta adicionar a linha:

evt.consume();

Antes de mudar o foco para outro componente.

erico_kl

valeu, mas mesmo assim não adianta…
esse componente JNumberField quando o Enter é pressionado, por padrão ele ‘atualiza’ o campo, adicionando pontos e vírgulas nos números
com qualquer outra tecla eu consigo passar o foco mas com o Enter não dá por causa disso…
tem algum jeito de eu herdar dessa classe e remover esse possível keyReleased dela?
valeu…

erico_kl

resolvido:

import java.awt.event.KeyListener;

public class JNumberField extends it.businesslogic.ireport.gui.JNumberField{

	public JNumberField() {
		this.removeKeyListener(this);
	}
}

não tinha pensado nisso antes… hehe…
mas valeu a ajuda ae…

Criado 17 de fevereiro de 2009
Ultima resposta 17 de fev. de 2009
Respostas 3
Participantes 2