Problema com leitura de código de barras

Olá a todos, com minha aplicação swing, onde há um campo de texto para receber a leitura do leitor, que automaticamente chama o método de consulta. Não entando, só retorna valor nulo. Segue parte da leitura:

Scanner s = new Scanner(System.in); while(isActive()){ fCodigo.setText(s.toString()); consulta(fCodigo.getText()); fCodigo.addKeyListener(this); }

Agora, se faço sem a interface:

String codigo;
Scanner s = new Scanner(System.in);
while(Integer.parseInt(s.next())!=-1){
	codigo  = s.next();
	List<Produto> lista  =  (List<Produto>)dao.verifica(Produto.class,codigo);
	for(Produto p : lista){
		System.out.println(p.getNome());
	}
	codigo = s.next();
}

Funciona, no entando preciso fazer a leitura do código 2 vezes!!

Não entendi o porque vc esta lendo o codigo atraves do System.in.

Já usei leitora de códigos de barras uma vez. Pelo que lembro, ela simplesmente escreve o código onde o cursor estiver posicionado. Daí basta vc tratar este evento.

É mococa, hehe, estava fazendo testes (Gambiarra). Então estava lendo o que o leitor lê, e vi que a última coisa que lê é o “Enter”!!. Coloquei em um evento de keylistener, só que ele só aponta para nulo!!

Alguém saberia me dizer qual é a diferença na leitura dos dados entre “new Scanner(System.ini)” e “fieldcomum.getText()”?

Pessoal, tentei fazer com KeyStroke. O problema deu no mesmo!!