通过鼠标中键捕捉粘贴动作

Catch paste action by middle mouse button

我在 linux 机器上工作,与 windows 不同的是有两个剪贴板,STRG-C 和 STRG-V 剪贴板以及高亮文本和鼠标中键粘贴剪贴板.

现在我尝试捕获粘贴操作,因为我想验证剪贴板并防止文本字段被非法输入。

我通过 STRG-V 成功捕捉到标准粘贴:

Action action = textField.getActionMap().get("paste-from-clipboard");
textField.getActionMap().put("paste-from-clipboard", new ProxyAction(action, "paste-from-clipboard"));

和ProxyAction的实现class:

    public class ProxyAction extends TextAction
    {
        private Action action;

        public ProxyAction1(Action action, String actionName)
        {
            super(actionName);
            this.action = action;
       }

       @Override
       public void actionPerformed(ActionEvent e)
       {
           action.actionPerformed(e);
       }
   }

我的问题是,如何捕捉 linux 特定的鼠标中键粘贴? 上面的代码没有得到它,jTextfield 的操作 "paste" 也没有解决问题。

i want to validate the clipboard and prevent the textfield from illegal input.

您可以使用 DocumentFilter 而不是尝试捕捉粘贴键。在将任何文本插入 Document.

之前调用 DocumentFilter

无论文本是输入到文本字段还是粘贴到文本字段,都会调用此过滤器。

查看有关 How to Implement a DocumentFilter 的 Swing 教程部分了解更多信息。