LINUX.ORG.RU

[java se swing] сканер штрихкодов


0

2

Такая ситуация, есть jPanel который висит на jLayeredPane. На панели текстовое поле. Панел скрыт. При вводе штрихкода (сканер клавиатурный) последовательно форме посылается код back_space - первый символ по которому показывается панелька и устанавливается фокус в текстовое поле, и далее цифры, которые должны попасть в текстовое поле. Вопрос в том что, первые 2 или 3 цифры пропускаются так как не успевает установиться фокус в текстовое поле... как это можно избежать, может как то забуферизировать?

А почему бы не установить фокус в первую очередь, перед всеми другими операциями?

CARS ★★★★
()
Ответ на: комментарий от drakmail

само собой я юзал keylistener, при попадании символа backspace передавал фокус текстовому полю, но пока он фактически получал фокус, мимо ушли уже 3 цифры следующие после backspace и в поле попало не 8887290103107, а только 7290103107, так не всегда но в 30% случаев. Нельзя допускать даже 1% таких случаев

pozitiffcat ★★★
() автор топика
Ответ на: комментарий от pozitiffcat

Хм, ну так можно после backspace запоминать три следующих символа, а после ввода, например, вставлять их в начало текстового поля. Тот еще костыль, но, поидее, будет работать, если ровно 3 символа пропускает. Или же сделать обработку keylistener'ом всех символов, чтобы наверняка. И после получения последнего, спустя 1 секунду, например, записывать текст в текстовое поле.

drakmail ★★★★
()
Ответ на: комментарий от drakmail

я еще более костыльный метод сделал в String сначала записывать все цифры полученные в keylistener а потом в поле, но все равно пропускает, не 3 цифры уже но 1 или 2, я уже не знаю куда копать.

pozitiffcat ★★★
() автор топика
Ответ на: комментарий от drakmail

физически невозможно, 200 сканеров по всему городу... да и добро не дадут на это

pozitiffcat ★★★
() автор топика
Ответ на: комментарий от visual_pipe

я так и делаю... у меня сейчас в переменную по букве записывается а уже потом в текст поле запихивается, без работы с фокусом

pozitiffcat ★★★
() автор топика
Ответ на: комментарий от pozitiffcat

вот я это и имел ввиду, зачем слушать сканер в текстовое поле, если можно слушать келистеером

visual_pipe
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.