Java-侦听系统安全粘贴命令
当用户将文本粘贴到我的程序中时,我需要触发一个事件,特别是JTextArea。是否有独立于系统的方法来检测粘贴命令?我一直在四处寻找,但似乎找不到这样的听众。我愿意接受一种非系统安全的解决方法,但我希望有一种通用的方法来解决这个问题。有一个名为的常量值,可以在以下内容中使用:Java-侦听系统安全粘贴命令,java,swing,paste,listen,Java,Swing,Paste,Listen,当用户将文本粘贴到我的程序中时,我需要触发一个事件,特别是JTextArea。是否有独立于系统的方法来检测粘贴命令?我一直在四处寻找,但似乎找不到这样的听众。我愿意接受一种非系统安全的解决方法,但我希望有一种通用的方法来解决这个问题。有一个名为的常量值,可以在以下内容中使用: 还有VK_CUT和VK_COPY,这可能会有所帮助。根据文档,所有这些都应该是独立于系统的。为什么要听“粘贴”?为什么不简单地使用添加到作为JTextArea“模型”的纯文档中的DocumentListener呢?这将通知
还有
VK_CUT
和VK_COPY
,这可能会有所帮助。根据文档,所有这些都应该是独立于系统的。为什么要听“粘贴”?为什么不简单地使用添加到作为JTextArea“模型”的纯文档中的DocumentListener呢?这将通知您文档的所有更改,无论其来源如何。如果您想防止在收听时修改文档,请使用DocumentFilter。无论如何,如果这是一个Swing GUI,您可能根本不应该使用KeyListener。请定义“系统独立”的含义?KeyEvent
有一个VK_PASTE
常量(在这里@hoverCraftFullOfels起作用)可以粘贴文本而不使用按键,因此这不会捕获所有事件。我仍然不知道OP的问题是怎么回事,可能永远也不知道,因为他似乎拒绝澄清。@HovercraftFullOfEels显然,VK_-PASTE
也识别了鼠标选项。谢谢,看起来它应该可以工作,但它没有启动。我的侦听器更新一个输入时出现问题,但即使使用简单的println,它也不会启动。@unstabledave您必须将keylister
添加到GUI中<代码>您的\u组件。添加(您的\u密钥侦听器)@Jon我有其他的按键监听器,在实际的击键时工作得很好,只是粘贴命令没有触发事件。这正是我一直在寻找的。适用于包括所有输入、粘贴和拖动在内的所有操作。谢谢
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode()) {
case KeyEvent.VK_PASTE:
// do stuff when a paste occurs
}
}