2011-07-22 52 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個獨立的窗口,並希望從所有窗口捕捉事件,也可以在一個地方完成。

相關問題