[Ajuda] Como trocar o foco automaticamente?

Estou desenvolvendo um sistema para controle de saída de notas fiscais na empresa que eu trabalho e sou bem iniciante em Java, comecei estudar a pouco tempo.

Estou trabalhando em uma ferramenta onde o usuário entra com a chave de acesso da nota fiscal usando um leitor de código de barras. Meu objetivo é que o número da nota, presente na chave de acesso, seja registrado em uma variável quando o usuário fizer a leitura dos 44 dígitos da chave. Armazenando no banco tanto a chave quanto o número da nota individualmente, que será usado como chave primária para consulta mais tarde.

A solução mais fácil que achei foi dividir a chave em vários jFormattedFields independentes, um ao lado do outro, onde em um deles fica somente o número da NF. Entretanto, não consigo de jeito nenhum fazer a transferência do foco automaticamente do primeiro campo para o segundo, e assim por diante, para que a leitura possa ser feita com o leitor de código de barras.

Alguém pode me auxiliar?

Desde já obrigado, e desculpem qualquer coisa, é meu primeiro post no site.

Boa noite amigo, até onde eu sei não é possível mudar o foco automaticamente, mas você já pensou em recuperar toda a chave e no próprio código separar ela, no cose já estando setado na variável pegar o numero da nota, pois o numero da sua nota deve tem um tamanho fixo.

Bom foi uma dica espero ter ajudado.

Sim, na verdade eu tinha pensado em fazer isso, mas não faço ideia de como separar uma parte específica de uma String e armazenar em uma variável…
O número da nota é sempre composto por 9 dígitos em um ponto específico da chave.

Fácil, você vai usar o método ‘substring’ da classe String.
Por exemplo, vamos supor que os numero que você deseja salvar como chave seja o 6789.

String nota = "123456789";
nota.substring(5, 9);

A partir da sua chave setada em uma String você chama o método substrig passando como parâmetro a posição inicial ate o limite que você deseja, no caso eu queria a partir do 5 até o 9, e ele me retornará o 6789. Para facilitar use um sysout para facilitar seus testes dessa forma.

System.out.println(nota.substring(5, 9));
1 curtida

Alex, perfeito!

Não conhecia o método substring, funcionou perfeitamente aqui.

Muito obrigado pela ajuda, abraços!

1 curtida