Java - 监听系统安全粘贴命令

时间:2012-03-13 03:09:02

标签: java swing paste listen

当用户将文本粘贴到我的程序中时,我需要触发一个事件,特别是JTextArea。是否有与系统无关的方法来检测粘贴命令?我一直在四处寻找,但似乎无法为此找到听众。我愿意接受一个非系统安全的解决方法,但我希望有一个通用的方法。

2 个答案:

答案 0 :(得分:2)

为什么要听“贴”?为什么不简单地使用添加到作为JTextArea的“模型”的PlainDocument的DocumentListener?这将通知您文档的所有更改,无论来源如何。如果您想在收听时阻止修改文档,请使用DocumentFilter。无论如何,如果这是一个Swing GUI,你可能根本就不应该使用KeyListeners。

答案 1 :(得分:1)

KeyEvent有一个名为VK_PASTE的常量值,可以在KeyListener#keyPressed(KeyEvent e)内使用:

public void keyPressed(KeyEvent e) {
  switch(e.getKeyCode()) {
    case KeyEvent.VK_PASTE:
      // do stuff when a paste occurs
  }
}

还有VK_CUTVK_COPY,这可能会有所帮助。根据文件,所有这些都应该是系统独立的。