Projet gus05 de développement Java
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

Synchroniser les textes de JTextComponents

Aller en bas

Synchroniser les textes de JTextComponents Empty Synchroniser les textes de JTextComponents

Message  Gus Lun 30 Nov - 14:43

Voici une petite entité qui permet de synchroniser les textes de plusieurs objets JTextComponent :

gus.graphic.scrollpane.scrollsynchronizer

Code:
package gus05.entity.gus.graphic.textcomp.textsynchronizer;

import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
import gus05.framework.core.Entity;
import gus05.framework.features.Give;


public class TextSynchronizer implements Entity, Give {

    public String getName()         {return "gus.graphic.textcomp.textsynchronizer";}
    public String getCreationDate()      {return "2009.11.30";}
   
    public void give(Object obj) throws Exception
    {
       JTextComponent[] comp = (JTextComponent[]) obj;
       new SynchText(comp);
    }

   
    private class SynchText implements DocumentListener
    {
       private JTextComponent[] comp;
       private boolean transfering = false;
       
       public SynchText(JTextComponent[] comp)
       {
          this.comp = comp;
          for(int i=0;i<comp.length;i++)
          comp[i].getDocument().addDocumentListener(this);
       }
       
   public void changedUpdate(DocumentEvent e) {}
   public void insertUpdate(DocumentEvent e) {textChanged(e);}
   public void removeUpdate(DocumentEvent e) {textChanged(e);}
       
   private void textChanged(DocumentEvent e)
   {
      if(transfering) return;
      transfering = true;
      Document doc = e.getDocument();
      transfertFrom(doc);
      transfering = false;
   }
      
   private void transfertFrom(Document doc)
   {
      try
      {
         for(int i=0;i<comp.length;i++)
         {
            if(comp[i].getDocument()!=doc)
            comp[i].setText(doc.getText(0,doc.getLength()));
         }
      }
      catch(BadLocationException e){}
   }
    }
}
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum