Как получать нажатия клавиш без выделения текстового поля? - PullRequest
0 голосов
/ 22 июля 2011

В своем приложении Swing я использую сканер штрих-кода, подключенный к машине через порт USB.Я хочу запустить действие (всплывающее окно), как только что-то сканируется с использованием сканера штрих-кода.У меня нет текстового поля (например, JTextField), сфокусированного до того, как сканирование будет выполнено.

Но если я сканирую что-то сейчас, не фокусируясь на текстовом поле, оно сканирует, а не регистрирует значение в приложении, так же, как мы нажимаем A,B,C,D на клавиатуре, не фокусируя курсор на текстовом поле.область, край.Мне нужно уведомить приложение изнутри о сканировании и зарегистрировать значение из сканера штрих-кода в текстовом поле.

Как мне это сделать?

1 Ответ

1 голос
/ 22 июля 2011

Вы можете добавить KeyListener к любому компоненту, включая ваше окно.Так что, если хотя бы что-то находится в фокусе, вы получите события.

Кроме того, вы можете использовать AWTEventListener: Toolkit.getDefaultToolkit().addAWTEventListener(listener, eventMask).Поиграйте с eventMask, чтобы получить интересующие вас события. Это позволяет получать события на уровне AWT.Даже если у вас есть 10 отдельных окон в приложении и вы хотите получать события от всех из них, вы можете сделать это в одном месте.

...