如何在Java中防止JTextField上的CTRL + C? [英] How can i prevent CTRL+C on a JTextField in java?

查看:99
本文介绍了如何在Java中防止JTextField上的CTRL + C?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何防止用户复制JTextField的内容?

How can i prevent a user from copying the contents of a JTextField?

我有以下内容,但我无法找到同时获取多个密钥的方法?

i have the following but i cannot figure a way to get multiple keys at the same time?

myTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
  char c = e.getKeyChar();
  if (!Character.isDigit(c)) {
    e.consume();
  }
}
});

推荐答案

为此,您将必须修改KeyAdapter,以便它可以在按下键和释放键时进行注册,以便我们可以知道何时同时按下两个键.同时按下两个键,以下代码应该可以解决问题:

For this, you will have to modify your KeyAdapter so that it can register when a key was pressed and when it was released, so that we may know when both keys were pressed simultaneously, the following code should do the trick:

textfield.addKeyListener(new KeyAdapter() {
        boolean ctrlPressed = false;
        boolean cPressed = false;

        @Override
        public void keyPressed(KeyEvent e) {
            switch(e.getKeyCode()) {
            case KeyEvent.VK_C:
                cPressed=true;

                break;
            case KeyEvent.VK_CONTROL:
                ctrlPressed=true;
                break;
            }

            if(ctrlPressed && cPressed) {
                System.out.println("Blocked CTRl+C");
                e.consume();// Stop the event from propagating.
            }
        }

        @Override
        public void keyReleased(KeyEvent e) {
            switch(e.getKeyCode()) {
            case KeyEvent.VK_C:
                cPressed=false;

                break;
            case KeyEvent.VK_CONTROL:
                ctrlPressed=false;
                break;
            }

            if(ctrlPressed && cPressed) {
                System.out.println("Blocked CTRl+C");
                e.consume();// Stop the event from propagating.
            }
        }
    });

我只是将其添加到我的一个JTextField中.

i was just adding this to one of my JTextFields.

这篇关于如何在Java中防止JTextField上的CTRL + C?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆