Pessoal, preciso de uma coisa aparentemente simples. Seria de fato simples se eu soubesse fazer… :roll: :lol:
Eu tenho dois leitores de código de barra. Um é USB e lê o código de barra e joga diretamente no buffer do teclado, imprimindo o código onde o cursor de texto estiver.
O outro leitor é porta serial e precisa se comportar exatamente como o leitor USB. Eu criei um programa java que consegue capturar o código lido da porta serial em formato String. A única coisa que me falta fazer é colar essa String no buffer do teclado.
Busquei pela internet inteira e só achei como copiar caracteres digitados do teclado e jogar em um arquivo texto. Definitivamente não é isso que preciso…
Embora, como o abelgomes disse, é melhor você jogar a string diretamente no JTextField (por exemplo).
j.silvestre
Amigos
preciso fazer exatamente isso. vou capturar um dado da serial e jogar no buffer do teclado como se o usuário tivesse pressionado a tecla em questão.
preciso de duas coisas. primeiro a tabela do teclado(keycode) por exemplo :
tecla'1'=VK_NUMPAD1tecla'2'=Vk_NUMPAD2etc...
outra coisa preciso gerar o evento de tecla pressionada.
Digamos que o código de barras seja entrado em um JTextField. Normalmente, em uma aplicação que usa códigos de barras, há apenas um campo na tela inteira que consegue ler o código (é claro que há exceções). Se for assim, seu problema é mais simples, porque basta você dar um setText com o código lido no JTextField que é usado para entrar o código de barras.
Se o código de barras puder ser entrado em qualquer lugar da tela (já vi algumas aplicações onde isso é feito - tipicamente quando você tem de cadastrar alguma coisa que tem vários códigos de barra para o mesmo produto na mesma caixa), você pode fazer uma de duas coisas:
a) Checar qual dos campos de entrada tem o foco, e então dar um setText nesse campo com o foco,
ou
b) O que é muito menos robusto, é usar java.awt.Robot para enviar os caracteres teclados. Já adianto que enviar caracteres teclados é bem mais chato que parece.
j.silvestre
entanglement
obrigado pela resposta,
mas devido a caracteristicas do projeto vou ter que usar o java.awt.Robot .