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 :

jTextPane -> Comment alerté un copier / coller ?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut jTextPane -> Comment alerté un copier / coller ?
    Bonjour,

    Après plusieurs recherches sur le net, je n'ai pas trouvé réponse à ma question, c'est pour cela que je vient ici pour trouvez la réponse.

    J'ai un jTextPane où je peux faire du copier/coller.
    Je souhaite, grâce à des évènements, afficher à l'écran dans une nouvelle fenetre ce que je vient de coller dans mon jTextPane. Comment puis-je faire ?

    Merci d'avance de vos réponses,

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,
    pourquoi tu ne redéfinirais pas la méthode insertString de Document, et à chaque insertion, tu testes si le texte inséré est égal au contenu du presse-papier (clipboard)
    un exemple
    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
     
    JTextPane txt = new JTextPane();
    Document doc = new DefaultStyledDocument(){
    	public void insertString(int offset, String str, AttributeSet a)
    		  throws BadLocationException
    	{
    		Clipboard clipBrd = Toolkit.getDefaultToolkit().getSystemClipboard();
    		DataFlavor dataFlavor = new DataFlavor(String.class, null);
    		try{
    			String copie = (String)clipBrd.getData(dataFlavor);
    			if (copie != null)
    				if (copie.equals(str))
    					System.out.println(copie);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		super.insertString(offset, str, a);
    	}
    };
    txt.setDocument(doc);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    Merci je vais regarder cette solution.
    Et je redit demain si ça marche chez moi !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    Rebonjour,

    Ça marche impeccable, cependant je n'arrive pas à savoir quand l'utilisateur fait un "ctrl+v".
    .getKeyCode() me donne 17 car je fais "ctrl" puis me donne 86 car je fais "v", mais je n'arrive pas à savoir quand il fait un "ctrl+v".

    Quelqu'un aurait-il une solution pour m'aider ?

    Merci d'avance,


    Edit :
    J'ai fait ce que tu m'as donné, cependant j'aimerais récupérer ce qui a été collé sans remplacer tout mon jTextPane par ce que je viens de coller.
    Comment puis-je faire cela ?

    Encore merci de vos aides !

  5. #5
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,
    tu pourrais tester si la touche Ctrl est enfoncé quand tu testes si la touche préssé est v
    pour me faire comprendre, voici un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    txt.addKeyListener(new KeyAdapter()
    {
    	public void keyPressed(KeyEvent ke)
    	{
                    //On teste si la touche pressé est "v"
    		if (ke.getKeyCode() == KeyEvent.VK_V)
    		{
                           //on teste si Ctrl est aussi pressé
    			if (ke.isControlDown())
    				System.out.println("Ctrl+v");
    		}
    	}
    });
    J'ai fait ce que tu m'as donné, cependant j'aimerais récupérer ce qui a été collé sans remplacer tout mon jTextPane par ce que je viens de coller.
    Comment puis-je faire cela ?
    j'ai pas compris!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    Bonjour,

    Dans le code que tu as posté plus haut il y a "txt.setDocument(doc);" cependant si j'enlève cette ligne le code marche plus car la fonction dans "doc" n'est plus appelé, logique.
    Je veut enlever la ligne "txt.setDocument(doc);" car ça me modifie entièrement mon jTextPane.

    Comment puis-je faire pour que la fonction "insertString" de "doc" soit appelée sans que mon jTextPane soit entièrement modifié ?

    En espérant que ce que je viens d'écrire soit plus compréhensible.

    Merci de vos réponses,

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

Discussions similaires

  1. Classeur excel protégé : comment permettre le copier-coller
    Par forum2015 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/08/2014, 18h18
  2. Réponses: 2
    Dernier message: 05/05/2014, 14h43
  3. [AC-2007] Comment empêcher le copier/coller sur un textbox?
    Par lakhdar16 dans le forum IHM
    Réponses: 5
    Dernier message: 22/01/2013, 11h46
  4. Comment empecher un copier coller dans plusieurs colonnes ?
    Par huyari dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/07/2012, 11h06
  5. comment empêcher le copier/coller dans une zone de texte
    Par hanafimohammed dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/05/2007, 20h57

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