IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Simuler un Ctrl+C Ctrl+V


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 55
    Points
    55
    Par défaut Simuler un Ctrl+C Ctrl+V
    Bonjour,
    Voilà, mon probleme est que je souhaite depuis un JToolBar cliquer sur un boutton et simuler avec ce clic le Ctrl+C et le Ctrl+V, un peu comme dans un editeur de texte en fait.

    J' ai bien trouvé un post qui parle de cela mais je n' arrive pas du tout : voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    URL url1 = Java.gestionLocaux.gestionLocauxPack.FenetrePrincipale.class.getResource("images/icones/couper.JPG");
    ImageIcon icon1 = new ImageIcon(url1);
    Action action1 = new AbstractAction("Premier Test", icon1) {
             // This method is called when the button is pressed
             public void actionPerformed(ActionEvent evt) {
                Action editionCouper = getActionByName(DefaultEditorKit.cutAction); 
                editionCouper.putValue(Action.NAME,"Couper"); 
             }
             };
     
    JButton c1 = new JButton(action1);
             c1.setText(null);
             c1.setMargin(new Insets(0, 0, 0, 0));
             toolBar.add(c1);
    Et voici les méthodes associées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private void createActionTable(JTextComponent textComponent) { 
            actions = new HashMap(); 
            Action[] actionsArray = textComponent.getActions(); 
            for (int i = 0; i < actionsArray.length; i++) { 
             Action a = actionsArray[i]; 
             actions.put(a.getValue(Action.NAME), a); 
            } 
            } 
    private Action getActionByName(String name) { 
                return (Action)(actions.get(name)); 
            }
    Et l' ereur aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.lang.NullPointerException
            at Java.gestionLocaux.gestionLocauxPack.FenetrePrincipale.getActionByName(FenetrePrincipale.java:1366)
            at Java.gestionLocaux.gestionLocauxPack.FenetrePrincipale.access$000(FenetrePrincipale.java:28)
            at Java.gestionLocaux.gestionLocauxPack.FenetrePrincipale$1.actionPerformed(FenetrePrincipale.java:66)
    Cette erreur ce produit à l' execution, lors du clic.
    Merci
    [ Modéré par vedaer ]
    -> Ajout du tag dans le titre
    [ Merci de respecter les Règles du Forum ]

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Dans le JTextComponent, il n'y a pas déjà des méthodes cut(), copy() et paste() ?

    http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/JTextComponent.html

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 55
    Points
    55
    Par défaut
    En fait j' ai trois boutton ds une JToolBar, et je voudrais que lorsque l' utilisateur clic dessus, sa selection soit copiée dans le presse papier, mais impossible avec ces methodes car elles doivent etre executer sur un objet de type JtextComponent (JTextField) hors je ne sais pas sur quel JTextField l' utilisateur sera au moment du clic, si vous voyez ce que je veux dire.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    De toute manière, lorsque tu appuis sur le bouton dans la ToolBar, le JTextField en question perd son focus (je crois!).

    Ce que tu peux faire, c'est se souvenir du dernier JTextField qui a eu le focus. Tu n'auras qu'à ajouter qu'un Focus Listener comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // variable de classe
    protected JTextComponent dernier;
     
    protected void setDernier (JTextComponent jTextCompoenent)
    {
       dernier = jTextComponent;
    }
     
    // ...
     
    // création d'un JTextField
    JTextField txt = new JTextField (...);
    txt.addFocusListener (
       new FocusListener ()
       {
          public void focusGain (FocusEvent e)
          {
             setDernier ((JTextComponent) (e.getComponent ()));
          }
     
          public void focusLost (FocusEvent e)
          {
          }
       }
    );
    Et à l'appui du bouton, utilise et le tour sera joué !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 55
    Points
    55
    Par défaut
    Ok je vais essayer ca merci beaucoup, mais ca m' al' air assez correct, je te dirai si ca fonctionne.

    Merci bien.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 55
    Points
    55
    Par défaut
    Bravo ca fonctionne !

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copy-Paste ctrl-c ctrl-v dans Form
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 25/09/2008, 09h03
  2. Detecter le Ctrl X , Ctrl V
    Par ahulane dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 07/02/2007, 18h54
  3. Réponses: 2
    Dernier message: 25/08/2006, 10h49
  4. [vb6]Drag N Drop + shift = ctrl-c/ctrl-v
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/04/2006, 23h06
  5. Undo-Redo (Ctrl-Z, Ctrl-Y) : comment le gérer ?
    Par MiJack dans le forum Langage
    Réponses: 6
    Dernier message: 13/01/2006, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo