Frage an java, jtextfield – Wie kann ich STRG + C auf einem JTextField in Java verhindern?

1

Wie kann ich verhindern, dass ein Benutzer den Inhalt eines JTextField kopiert?

Ich habe Folgendes, kann aber nicht herausfinden, wie ich mehrere Schlüssel gleichzeitig erhalten kann.

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

Deine Antwort

1   die antwort
2

dass er registriert werden kann, wann eine Taste gedrückt und wann sie losgelassen wurde, damit wir wissen, wann beide Tasten gleichzeitig gedrückt wurden. Der folgende Code sollte den Trick ausführen:

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

Ich habe dies gerade zu einem meiner JTextFields hinzugefügt.

etwas dagegen, uns zu zeigen, wie? Das obige Beispiel funktioniert ziemlich gut. Basilio German
Danke das klappt einwandfrei! helloWorldB
einfache falsche Antwort, warum die in KeyListener integrierte Tastenkombination KeyBindings außer Kraft gesetzt werden soll; das Problem ist, dass Sie die Bestellung der Listener garantieren können, mKorbel
Was meinst du? Haben Sie versucht, Kommas in Ihren Sätzen zu verwenden? Basilio German

Verwandte Fragen