通过鼠标中键捕捉粘贴动作
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 教程部分了解更多信息。
我在 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 教程部分了解更多信息。