Evento da Leitora de Codigo de Barras

Ola pessoal, estou com a seguinte dificuldade, não consigo diferenciar o evento da leitora de codigo de barras para a digitação do teclado.
tenho o seguinte codigo.

@Override public void doKeyPressed(final KeyEvent e) throws DatabaseException { if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyChar() == KeyEvent.VK_TAB) { editListener.fazer(); } } });

Aki pego quando o enter ou o tab foi precionado, o problema e que o codigo nao diferencia o enter dado pelo usuario e o enter que a leitora dispara

Alguem ja teve esse problema?

Opa!

É o seguinte, não dá para diferenciá-los. A leitora de código de barras funciona como uma extensão do teclado, desta forma o SO não consegue diferenciar. Aliás, nem mesmo a placa-mãe consegue diferenciar.

Há uma gambiarra que você pode tentar: Se forem “digitados” vários números bem rapidamente seguido de um enter, você pode assumir que foi a leitora de código de barras que digitou.

Valeus ai veio, realmenta nao tem como descobrir nao, so por gambirras.

Você pode reconfigurar a leitora, se isso for possível (alguns modelos possibilitam isso), para ela enviar um outro caracter em vez de ENTER ou TAB, mas em particular não recomendo isso, porque:

  • Isso normalmente não dá para fazer pelo seu software Java - você precisa fazer com que o cara que vai instalar a leitora na máquina faça o processo de reconfiguração;
  • Se porventura o seu cliente simplesmente comprar um leitor novo porque o antigo perdeu-se, quebrou ou sei lá o que ocorreu, ou o leitor desconfigurar sozinho por algum motivo, então seu programa vai parar de funcionar porque ele não funciona com as configurações padrão.