2

我正在尝试编写一个应用程序,该应用程序将使用使用扫描条形码找到的或嵌入磁条卡数据中的 id 密钥的数据来搜索和检索用户的个人资料。后一个是让我伤心的。在搜索用户配置文件之前,需要解析磁条数据。

我的问题,有没有办法捕获扫描到文本框中的文本并在它显示在文本框中之前对其进行解析?

我的阅读器/扫描仪是键盘仿真类型,因此就好像在条带上编码的每个字符都在文本框中输入。我想一个解决方案(但它是最好的吗?)将拦截每个击键(由磁条阅读器模拟),将它们存储在缓冲区中并显示一个空字符,直到读取字符串结束。一旦读取了卡片数据的结尾,我就可以解析并显示 id 的 id 部分。问题是......如果它们作为单独的字符按键输入,你怎么知道它是卡片数据字符串的结尾?

4

2 回答 2

2

您应该能够使用文档过滤器来截取添加到 JTextField 文档中的文本。然后,当您收到字符串结尾字符时,您可以解析文本并将其插入到文本字段中。

于 2011-09-27T03:26:16.180 回答
2

第一个问题的答案是在文本字段的 Document 上设置 DocumentFilter。

..如果它们作为单独的字符按键输入,你怎么知道它是卡片数据字符串的结尾?

您的 MSR 肯定会发出 START_STRING 和 END_OF_LINE_STRING 作为一些预定义字符的组合。读取 MSR 设备的数据规范。一旦你有了它,你就可以实现类似于这个伪代码的过滤器的 insertString

if str == START_CHARACTER
    then clear buffer

if str == EOL_CHARACTER
    then parse and do super.insertString

else
    append string to buffer

同样,可以使用 MSR 的数据规范来实现解析逻辑。

(MSR = 磁条阅读器)

于 2011-09-27T04:24:39.220 回答