Java: interdire le copier/coller dans un JTextArea ( ) |
|
|
Ecrit le 13-08-2011 (12566 hits) ... section Java
pour interdire la fonction copier/coller dans un JTextField en java (marche avec tous les héritier de JTextComponent), il y a plusieurs méthodes. Passer par une surcharge des raccourcis clavier:
| //pas de copier/coller JTextComponent.KeyBinding[] newBindings = { new JTextComponent.KeyBinding( KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK), DefaultEditorKit.beepAction), new JTextComponent.KeyBinding( KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK), DefaultEditorKit.beepAction), new JTextComponent.KeyBinding( KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK), DefaultEditorKit.beepAction) }; Keymap k = textArea.getKeymap(); JTextComponent.loadKeymap(k, newBindings, textArea.getActions());
|
Mais le plus sur est carrément de surcharger les fonctions correspondantes. En effet, il y a plusieurs moyens de copier/coller, on oublie toujours les vieux raccourcis de Windows 2.0: - CTRL+C mais aussi CTRL+INS
- CTRL+V mais aussi SHIFT+INS
voici donc la méthode inviolable:
| JTextArea textArea = new JTextArea() { @Override public void cut() { Toolkit.getDefaultToolkit().beep(); //Envoi un retour sonore } @Override public void copy() { Toolkit.getDefaultToolkit().beep(); } @Override public void paste() { Toolkit.getDefaultToolkit().beep(); } } ; |
Bien sur, rien ne vous empêche de créer un composant personnalisé.
|