我有一个 java swing 应用程序,它有一个表单,我通过扫描包含制表符(或 $I)分隔数据的条形码作为通过 USB 连接的键盘输入来填充该表单。有时,表单的文本字段填充不正确,以致选项卡似乎处理得太晚了。例如,如果条形码中的数据集类似于“abc$Idef”,则预期输出将是第一个文本字段中的“abc”和第二个文本字段中的“def”。我们有时看到的是第一个文本字段中的“abcde”和第二个文本字段中的“f”,甚至第一个文本字段中的所有数据,而第二个文本字段中什么也没有。
我已经看到这个问题在不同的日子里以不同的频率出现。今天可能会很好,我只看到每 150 次尝试中会发生 1 次。昨天它可能很糟糕,10 次尝试中发生了 1 次。扫描仪处于或接近默认出厂设置,但我切换参数以实现制表符与 $I 分隔符除外。我还尝试降低传输速度,虽然这似乎确实降低了事件的频率,但它并没有消除它们,而且减慢的速度对于用户工作流程来说并不理想,因此,将其重置为全速。
然而,我怀疑问题出在扫描仪上。在应用程序中,我尝试禁用所有文本字段验证和数据备份,以从根本上删除任何可能导致延迟的自定义代码,但间歇性问题仍然存在。目前,该应用程序正在使用 JRE 1.5.0_18 的 WinXPSP3 上运行。扫描仪是 Symbol 型号 ds6707。我可以使用一些指导来进一步调查此问题,以确定问题可能出在哪里。