【问题标题】:USB Barcode Scanner with Java swing带有 Java swing 的 USB 条码扫描器
【发布时间】:2016-01-28 18:41:43
【问题描述】:

我有一个 Zebex Z-3100 CCD 扫描仪,它可以非常整齐地读取条形码。

我正在尝试做的是制作一个可以处理它读取的条形码的java程序,到目前为止我已经成功地做到了。

我正在努力的是让java程序在不标记控制台/文本区域(swing)的情况下监听条形码。

当我启动程序(swing)并扫描代码时,它可以工作,但是当我使用键盘(我在 swing 中实现)并按“清除”时,它最后触摸了“清除”按钮,并且文本字段不再输出读取的条形码。

我试图通过制作一个只听的单独线程来解决这个问题

"Scanner sc = new Scanner(System.in);",

但是当我单击“清除”按钮时,它不再没有标记控制台和文本字段,并且程序没有读取任何代码..

有没有人知道一种简单的方法让程序总是听扫描仪的声音?

扫描仪似乎像键盘一样工作 -> 数字+输入(例如 41231 -> 输入)

我不确定要链接代码的哪一部分,但如果有人需要/请求,我会链接代码!

非常感谢!

EDIT 当我标记控制台/文本区域时,它会再次读取代码。我不知道该怎么做的唯一部分 - 是让它听条形码扫描仪“24/7”!

【问题讨论】:

  • 您需要发布相关代码,最好尽可能靠近minimal reproducible example(请查看链接)。
  • 使用SwingWorker,代表example。
  • 当您单击“清除”按钮时,在JTextField 上调用requestFocusInWindow 以将键盘焦点移回它
  • @trashgod 不幸的是 SwingWorker 没有工作。同样的问题,当文本域没有标记时,它不会读取条形码。
  • @MadProgrammer,你应该把它写成答案!我会给你“正确”的东西!成功了^^ 非常感谢! :D

标签: java swing barcode barcode-scanner


【解决方案1】:

你的问题是一个简单的焦点问题。当您单击“清除”按钮时,它现在具有键盘焦点,相反,您希望将焦点返回给JTextField

当您单击“清除”按钮时,在 JTextField 上调用 requestFocusInWindow 以将键盘焦点移回它

【讨论】:

    猜你喜欢
    • 2013-01-12
    • 2011-02-22
    • 2015-11-15
    • 2021-12-14
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    相关资源
    最近更新 更多