2017-01-02 60 views
-1

我一直在环顾四周,一直未能找到任何解决方案,这个问题:我有一个JTextField,我想做一些事情时,用户粘贴在那里,我已经找到了这个:What event to use when pasting something in a JTextField?区分键入和粘贴在JTextField

它工作正常,除了我只想做事情时,用户粘贴的东西,而不是当它写在文本字段,我虽然保存了它的先前的价值,并比较它与新的,如果它是空的,现在不是,做的事情,但这是行不通的,因为当用户键入文本字段中的第一个字母时,它将进入该状态。

如果有人知道如何做到这一点,请使用documentListener或其他任何侦听器来处理它,这将是非常有帮助的。

更新:由于不同的人问,我想这样做的原因是因为文本将来自条形码阅读器或一些类似的设备。

+1

为什么?从用户界面设计的角度来看,这听起来很糟糕。 –

回答

0

除了我只想要做的事情,当用户粘贴一样

为什么要粘贴的文本被视为比键入的文本有什么不同?听起来像是一个设计问题。如果您指定了更好的理由/要求,我们可能会提出更好的解决方案。

我想要做一些事情,当用户粘贴东西在里面

您可能能够覆盖JTextFieldpaste()方法。只需重写调用super.paste()的方法,然后添加您的自定义代码即可。

如何做到这一点白衣的DocumentListener

也许你会认为是“粘贴”来表示多个字符被一次性加入。在这种情况下,您只需测试添加到Document的字符串的长度。

+0

我想要处理粘贴的文本不同,因为文本实际上将来自条形码阅读器,只是这样做,读取条形码并粘贴阅读文本。我会考虑重写粘贴方法。感谢您花时间回答。 –

0

我能够通过配置我的条形码扫描器并在每次阅读后发送一个“新行”并每次发生这种情况时使用JTextField的actionPerformed来解决我的问题。感谢所有试图提供帮助的人。