我有一个 Zebex Z-3100 CCD 扫描仪,它可以非常清晰地读取条形码。
我想做的是制作一个可以处理它读取的条形码的java程序,到目前为止我已经做得很好了。
我正在努力的是让java程序监听条形码而不标记控制台/文本区域(swing)。
当我启动程序(swing)并扫描代码时,它可以工作,但是当我使用键盘(我在swing中实现)并按“清除”时,它最后触摸了“清除”按钮,并且文本字段不再输出读取的条形码。
我试图通过创建一个只监听的单独线程来解决这个问题
“扫描仪 sc = new Scanner(System.in);”,
但是当我单击“清除”按钮时,它不再标记控制台或文本字段,并且程序不会读取任何代码。
有人知道让程序始终监听扫描仪的简单方法吗?
扫描仪的工作方式似乎像键盘 -> 数字+输入(例如 41231 -> 输入)
我不确定要链接代码的哪一部分,但如果有人需要/请求,我会链接代码!
非常感谢!
编辑当我标记控制台/文本区域时,它将再次读取代码。我唯一不确定该怎么做的部分 - 是让它听条形码扫描仪“24/7”!
最佳答案
你的问题是一个简单的焦点问题。当您单击“清除”按钮时,它现在具有键盘焦点,相反,您希望将焦点返回给 JTextField
当您单击“清除”按钮时,在 JTextField
上调用 requestFocusInWindow
将键盘焦点移回它
关于java - 带 Java swing 的 USB 条码扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35069474/