在我的Swing应用程序中,我使用的是使用USB端口连接到机器的条形码扫描器。我想在使用条形码扫描器扫描一些东西后立即触发一个动作(弹出一个窗口)。在扫描完成之前,我没有任何文本字段(例如JTextField
)。
但是,如果我现在扫描一些内容而不关注文本字段,那就是扫描而不是将值注册到应用程序,就像我们在键盘中按A,B,C,D
而不将光标聚焦在文本字段区域一样。我需要在扫描发生时在内部通知应用程序,并在文本字段中注册条形码扫描器中的值。
我该怎么做?
答案 0 :(得分:1)
您可以将KeyListener添加到任何组件,包括您的窗口。因此,如果至少有一些东西成为焦点,您将收到这些事件。
此外,您可以使用AWTEventListener:Toolkit.getDefaultToolkit().addAWTEventListener(listener, eventMask)
。使用eventMask来获取您感兴趣的事件。这样可以在AWT级别上获取事件。即使您的应用程序中有10个单独的窗口,并且想要捕获所有窗口中的事件,您也可以在一个位置执行此操作。