碰到一个需求,不让复制黏贴。
可考的方法有:1 重写JTextField paste 函数 2 删除组件ActionMap中与CTRL + V按键相关的操作
因为JTextField 已经被封装了一层,就不想再折腾了。于是采用了KeyAdapter 捕获 Ctrl+v 的动作,然后通过掩饰机制把黏贴的内容清除,
CTextKeyAdapter 可以捕获事件,但不能阻止事件,所以弄了个延时。
class CTextKeyAdapter extends KeyAdapter
{
@Override
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == 86)
{
Timer mTimer = new Timer();
mTimer.schedule(new TimerTask()
{
@Override
public void run() {
Tip.setText("");
Tip2.setText("");
showWarningDialog("请扫描标签验证!而不是复制粘贴(not Ctrl+V).");
}
}, 1000);
}
}
};
标签:Java,setText,Override,Swing,KeyAdapter,黏贴,public From: https://www.cnblogs.com/wn2ln/p/17105610.html