Synchroniser les textes de JTextComponents
Projet gus05 de développement Java :: Développements :: Quelque-unes de mes entités :: Programmation graphique Swing :: Composants JTextComponent
Page 1 sur 1
Synchroniser les textes de JTextComponents
Voici une petite entité qui permet de synchroniser les textes de plusieurs objets JTextComponent :
gus.graphic.scrollpane.scrollsynchronizer
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){}
}
}
}
Projet gus05 de développement Java :: Développements :: Quelque-unes de mes entités :: Programmation graphique Swing :: Composants JTextComponent
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus