Pergunta sobre jtextfield, java – Como posso evitar o CTRL + C em um JTextField em java?

1

Como posso evitar que um usuário copie o conteúdo de um JTextField?

Eu tenho o seguinte, mas não consigo descobrir uma maneira de obter várias chaves ao mesmo tempo?

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

Sua resposta

1   a resposta
2

Para isso, você terá que modificar seu KeyAdapter para que ele possa registrar quando uma tecla foi pressionada e quando foi liberada, para que possamos saber quando ambas as teclas foram pressionadas simultaneamente, o seguinte código deve fazer o seguinte:

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.
            }
        }
    });

Eu estava apenas adicionando isso a um dos meus JTextFields.

mente nos mostrando como? o exemplo acima funciona muito bem. Basilio German
Obrigado isso funciona perfeitamente! helloWorldB
KeyListener não é designado para escutar eventos de teclados para Swing JComponents, pois é necessária a maneira mais segura de usar KeyBindings, mas há outras maneiras de como proteger SystemClipboard (ctrl + c / x) mKorbel
Oh. Obrigado por esclarecer meus fatos. JHS

Perguntas relacionadas