【发布时间】:2011-09-27 02:35:35
【问题描述】:
我正在尝试编写一个应用程序,该应用程序将使用通过扫描的条形码找到的或嵌入磁条卡数据中的 id 密钥来搜索和检索用户的个人资料。后一个是让我伤心的。在搜索用户配置文件之前,需要解析磁条数据。
我的问题,有没有办法捕捉扫描到文本框中的文本并在它显示在文本框中之前对其进行解析?
我的阅读器/扫描仪是键盘仿真类型,因此好像在条带上编码的每个字符都在文本框中输入。我想一个解决方案(但它是最好的吗?)将拦截每个击键(由磁条阅读器模拟),将它们存储在缓冲区中并显示一个空字符,直到读取字符串结束。一旦读取了卡片数据的结尾,我就可以解析并显示 id 的 id 部分。问题是……如果卡的数据字符串作为单独的字符按键输入,你怎么知道它是结尾?
【问题讨论】:
-
请提供一个指向设备 API 的链接和一个 sscce 显示您尝试过的内容。
-
什么是文本框?我不知道任何同名的 Swing 组件?具体并使用正确的类名,这样我们就不必猜测您在说什么。
-
@trashgod MSR 没有 API,因为它是一个键盘模拟器。在考虑更多问题的同时,在发布后,我决定放置一个带有 ActionListener 的按钮,该按钮解析 MSR 读取的数据。这可行,但缺点是显示原始数据。
-
我想我可以按照 Rajeev 和 Camickr 的建议解决这个问题,使用 DocumentFilter 来监听起始标记字符,开始缓冲字符并在遇到结束标记时停止我会解析数据。对于每个缓冲的字符,我会将字段的文本替换为空字符串,并且只有在到达结束标记时才将其设置为解析后的 id。这应该工作。
-
我明白了。 @Rajeev 即使在不知道具体 API 的情况下也能够提出一种方法,但链接可能会对未来的访问者有所帮助。随着reputation 的增长,不要忘记投票。
标签: java swing text-parsing magnetic-cards