我在一台linux机器上工作,与windows不同的是,有两个剪贴板,STRG和STRG剪贴板以及突出显示的文本,并通过鼠标中间按钮剪贴板粘贴。
现在,我尝试捕捉粘贴操作,因为我想验证剪贴板并防止textfield非法输入。
我用STRG成功地捕捉到了标准粘贴:
Action action = textField.getActionMap().get("paste-from-clipboard");
textField.getActionMap().put("paste-from-clipboard", new ProxyAction(action, "paste-from-clipboard"));以及ProxyAction类的实现:
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的操作“粘贴”也不能解决这个问题。
发布于 2016-02-16 16:04:05
我想验证剪贴板和防止文本字段的非法输入。
您可以使用DocumentFilter,而不是试图捕获粘贴键。在任何文本插入到DocumentFilter之前都会调用Document。
无论文本是键入到文本字段还是粘贴到文本字段中,都会调用此筛选器。
有关更多信息,请参阅关于如何实现DocumentFilter的Swing教程中的部分。
https://stackoverflow.com/questions/35437215
复制相似问题