我一直在寻找并且找不到任何解决方案来解决这个问题:我有一个JTextField,当用户在那里粘贴东西时我想做一些事情,我发现了这个:{{ 3}}
哪个工作正常,除了我只想在用户粘贴内容时做事情,而不是在文本字段上写入时,我虽然保存了它的先前值并将其与新的比较,如果它是空的,现在不是,做的事情,但这不起作用,因为当用户在文本字段中键入第一个字母时它将进入该条件。
如果有人知道如何使用documentListener或者任何其他侦听器来处理它,那将会有所帮助。
更新:因为不同的人问过,我想这样做的原因是文本来自条形码阅读器或类似的设备。
答案 0 :(得分:0)
除了我只想在用户粘贴内容时执行操作
为什么要将粘贴的文本与键入的文本区别对待?听起来像是一个设计问题。如果您为doiong指定了更好的理由/要求,我们可以提出更好的解决方案。
我想在用户粘贴内容时做一些事情
您可以覆盖paste()
的{{1}}方法。只需覆盖方法即可调用JTextField
,然后添加自定义代码。
如何在documentListener
中执行此操作
也许您会认为“粘贴”意味着一次添加多个字符。在这种情况下,您只需测试添加到super.paste()
的字符串的长度。
答案 1 :(得分:0)
我能够通过配置我的条形码扫描仪并让它发送一条"新线路来解决我的问题。每次读取后,每次使用JTextField的actionPerformed执行我的代码。感谢所有试图提供帮助的人。