Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > fr.comp.lang.java > #1685

Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V

Newsgroups fr.comp.lang.java
From David Larochette <david@Myriam-Debian.home>
Subject Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V
References <5ab71d60$0$7588$426a34cc@news.free.fr> <p990pv$iq1$1@cabale.usenet-fr.net> <5ab87d44$0$31637$426a74cc@news.free.fr>
Message-ID <slrnpbip4l.3ne.david@larochette.me> (permalink)
Date 2018-03-26 21:22 +0000
Organization Guest of ProXad - France

Show all headers | View raw


Le 26-03-2018, jp <bloiiing@yahoo.invalid.com> a écrit :
> Le Sun, 25 Mar 2018 22:28:46 +0200, Olivier Miakinen a écrit :
>
>> Bonjour,
>> 
>> Le 25/03/2018 05:54, jp a écrit :
>>> 
>
>> Je ne suis sûr de rien, mais n'y aurait-il pas moyen de capturer les
>> saisies au clavier et de filtrer les évènements pour ne pas les
>> transmettre aux éléments suivants ? Note que si cette méthode fonctionne
>> il te faudra aussi filtrer Ctrl+Inser et Shift+Inser pour interdire tout
>> copier coller.
>  
> Oui mais comment?
>
>> Mais j'ai une petite question annexe : pour quelle raison interdire
>> cette fonctionnalité ? Ne pas l'avoir est *très* désagréable pour
>> l'utilisateur.
>
> Ce ne serait pas dans tout le logiciel. Seulement au niveau de ma JList.
>
> J'ai trouvé ça sur le net:
>
> import java.awt.EventQueue;
> import java.awt.event.ActionEvent;
> import java.awt.event.ActionListener;
> import java.awt.event.KeyEvent;
>
> import javax.swing.JComponent;
> import javax.swing.JEditorPane;
> import javax.swing.JFrame;
> import javax.swing.JScrollPane;
> import javax.swing.KeyStroke;
> import javax.swing.ScrollPaneConstants;
>
> //Intercepting Ctrl+v demo
>
> public class TestEditorPane {
>     private JEditorPane editorPane;
>
>     public static class CombinedAction implements ActionListener {
>         private final ActionListener action1;
>         private final ActionListener action2;
>
>         public CombinedAction(ActionListener action1, ActionListener 
> action2) {
>             super();
>             this.action1 = action1;
>             this.action2 = action2;
>         }
>
>         @Override
>         public void actionPerformed(ActionEvent e) {
>             if (action1 != null) {
>                 action1.actionPerformed(e);
>             }
>             if (action2 != null) {
>                 action2.actionPerformed(e);
>             }
>         }
>
>     }
>
>     public TestEditorPane() {
>     }
>
>     private void initUI() {
>         JFrame frame = new JFrame();
>         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>         // JTEXTBOX
>         editorPane = new JEditorPane();
>         KeyStroke ctrlV = KeyStroke.getKeyStroke(KeyEvent.VK_V, 
> KeyEvent.CTRL_DOWN_MASK);

          // Il y a aussi VK_COPY, VK_CUT et VK_PASTE pour les claviers
	  // qui possèdent physiquement ces touches.

>         final ActionListener ctrlVAction = 
> editorPane.getActionForKeyStroke(ctrlV);
>         editorPane.registerKeyboardAction(new CombinedAction(ctrlVAction, 
> new ActionListener() {
>
>             @Override
>             public void actionPerformed(ActionEvent e) {
>                 System.out.println("This is my action on CTRL+V");
> 		//Effectivement ça permet une action, mais le Ctrl-V à 

                  e.consume(); // Et l'objet qui a émis l'évènement
		  // l'ignorera

>             }
>         }), ctrlV, JComponent.WHEN_FOCUSED);
>         // JSCROLLPANE
>         JScrollPane scroll1 = new JScrollPane(editorPane);
>         scroll1.setHorizontalScrollBarPolicy
> (ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
>         scroll1.setVerticalScrollBarPolicy
> (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
>         frame.add(scroll1);
>         frame.setSize(400, 400);
>         frame.setVisible(true);
>     }
>
>     public static void main(String[] args) {
>         EventQueue.invokeLater(new Runnable() {
>             @Override
>             public void run() {
>                 try {
>                     TestEditorPane test = new TestEditorPane();
>                     test.initUI();
>                 } catch (Exception e) {
>                     e.printStackTrace();
>                 }
>             }
>         });
>     }
>
> }
>
>> P.-S. : à moins que tu n'utilises vraiment l'adresse bloiiing.invalid
>> chez yahoo.com, le .invalid est au mauvais endroit : il faudrait prendre
>> plutôt bloiiing@yahoo.com.invalid ou bloiiing@yahoo.invalid si cette
>> adresse n'est pas valide.
>
> Ok. Rectifié.
>

Back to fr.comp.lang.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Désactiver Ctrl+C, Ctrl+X et Ctrl+V jp <bloiiing.invalid@yahoo.com> - 2018-03-25 03:54 +0000
  Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V Olivier Miakinen <om+news@miakinen.net> - 2018-03-25 22:28 +0200
    Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V jp <bloiiing@yahoo.invalid.com> - 2018-03-26 04:55 +0000
      Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V Olivier Miakinen <om+news@miakinen.net> - 2018-03-26 14:44 +0200
        Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V jp <bloiiing@yahoo.invalid> - 2018-03-27 11:35 +0000
      Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V David Larochette <david@Myriam-Debian.home> - 2018-03-26 21:22 +0000
        Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V jp <bloiiing@yahoo.invalid> - 2018-03-27 11:32 +0000
          Re: Désactiver Ctrl+C, Ctrl+X et Ctrl+V David Larochette <david@Myriam-Debian.home> - 2018-03-27 22:47 +0000

csiph-web