Witam,
Mam poważny problem z implementacja zdarzeń klawiaturowych, dokładnie chodzi o odczytanie kodu paskowego. Ale zostawmy czytnik, jest to identyczne zdarzenie jak te wysłane z klawiatury, trzeba tylko zebrać w buforze wszystkie znaki do momentu znaku nowej linii itd.
Wracając do problemu, aplikacja zawiera masę przycisków, tabel, ogólnie różnych komponentów, problem polega na tym, że powinna ona w każdym momencie zareagować na zdarzenie czytania kodu paskowego (po prostu kilka znaków z klawiatury), najbardziej oczywistym rozwiązaniem było by dodać do każdego komponentu keylistener - takie to rozwiązanie biorę ewentualnie pod uwagę, ale według mnie jest to bardzo nie uniwersalne, kod straci przejrzystość, będzie trudny w diagnozowaniu (komponentów jest naprawdę dużo).
Kolejnym rozwiązaniem jest key bindings, ale tutaj musiałbym zdefiniować wszystkie możliwe znaki, jakie mogą wystąpić w kodzie paskowym – pyzatym nie wiem za bardzo jak odczytać kod znaku i rozpoznać „ENTER” , można też skorzystać z KeyStroke.getKeyStrokeForEvent(e), ale wtedy muszę mieć Keyistener - czyli wracam do pierwszego rozwiązania.
Moje pytanie brzmi, czy ktoś może ma jakiś pomysł, jakieś inne rozwiązanie, może ja źle interpretuje przedstawione tutaj mechanizmy.
Pozdrawiam.