Java Swing 禁止黏贴动作

碰到一个需求,不让复制黏贴。

可考的方法有: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);
}
}

};

posted on 2023-02-09 16:00  皖南  阅读(75)  评论(0)    收藏  举报