2011-07-22 55 views
0

在我的Swing应用程序中,我使用USB端口连接到本机的条码扫描器。一旦使用条形码扫描器扫描某些内容,我想要触发一个操作(弹出一个窗口)。在扫描完成之前,我没有任何文本字段(例如JTextField)。如何在没有关注文本字段的情况下接收按键?

但是,如果我现在扫描的东西没有专注于文本字段,它正在扫描而不是将值注册到应用程序,就像我们如何在键盘上按下A,B,C,D而没有将光标对准文本字段区域。我需要在发生扫描时在内部通知应用程序,并在文本字段中将条形码扫描仪的值注册。

我该怎么做?

+0

任何输入框..就像JTextField – Deepak

+0

对于'JTextField'使用'setText(String)'(而不是当前实施的任何无稽之谈)。我不会说任何其他组件,比如“JTextField”(除非明确指出)。 –

+0

带有InputMask的JFormattedTextField – mKorbel

回答

1

您可以将KeyListener添加到任何组件,包括您的窗口。所以如果至少有一些焦点,你会收到事件。

此外,您可以使用AWTEventListener:Toolkit.getDefaultToolkit().addAWTEventListener(listener, eventMask)。使用eventMask来获取您感兴趣的事件。这允许在AWT级别获得事件。即使您的应用程序中有10个独立的窗口,并希望从所有窗口捕捉事件,也可以在一个地方完成。

相关问题