Jtextpane etendu et facilite (lecture,ecriture rtf),couleurs,...

Soyez le premier à donner votre avis sur cette source.

Vue 12 159 fois - Téléchargée 741 fois

Description

Bonjour,
je poste ce code car je m'en sert tres souvent ...
il propose une extension de JTextPane qui facilite l'ajout de texte dans une certaine police ,couleur,taille,ou meme souligne , barre , italique

il y a aussi une methode pour lire un rtf et une pour enregistrer en rtf

par exemple il est presque facile de faire defiler du texte : voir le code plus bas

Source / Exemple :


//voici un exemple avec un Thread(methode run) et une methode pour faire un effet de defilement ...
//j'avoue que ce n'est pas parfait mais ca donne une bonne idee de la chose : 

	public void run() {
		try {
			Thread.sleep(2000);
			while (true) {
				txt.setEditable(true);
				txt.setBlanck(0, title.length);
				txt.appendWhere(0, "", 12, Color.black);
				txt.appendWhere(0, move(), 40, Color.red);
				txt.setEditable(false);
				txt.repaint();
				Thread.sleep(1000);
			}
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

	private String move() {
		String t2[] = new String[title.length];
		for (int i = 0; i < title.length; i++) {
			if ((i + 1) < title.length)
				t2[i] = title[i + 1];
			else
				t2[i] = title[0];
		}
		StringBuffer str = new StringBuffer();
		for (int i = 0; i < t2.length; i++)
			str.append(t2[i]);
		title = t2;
		System.out.println(toString(title));
		return str.toString();
	}
        private String toString(String[] t) {
		StringBuffer str = new StringBuffer();
		for (int i = 0; i < t.length; i++)
			str.append(t[i]);
		return str.toString();
	}
//PS : le texte est dans un tableau de String et dans cet exemple il est fait pour etre au debut

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

De rien :)
lOeil
Messages postés
23
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 mars 2009

Merci beaucoup c'est impeccable :D
cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

P.S (2) : Et n'oublies pas l'import de la classe javax.swing.JFrame .
cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

P.S : N'oublies pas de consulter la Javadoc pour tout que qui t'es nouveau dans ce que j'ai mis (d'ailleurs il y a les chemins complets des packages) : c'est toujours mieux que de se contenter d'éxécuter la source .
cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Salut LOEil, tout le monde a forcément débuté un jour .

En fait le JTextPane doit être intégré à un composant fenetre (soit javax.swing.JFrame, soit une classe dérivée donc) .
Mais ce n'est pas tout : ce composant fenetre ne s'affiche pas par défaut, il faut appeler sa méthode setVisible(boolean aFlag), méthode de la classe javax.swing.JComponent, avec aFlag valant true afin de la rendre visible . (false au contraire permet de la masquer) .

Il y a enfin d'autres ajustemetns recommandés, que je t'ai commentés : la taille, le titre par l'intermédiaire du constructeur, la fermeture automatique, le centrage sur l'écran .

Source ---------------------------------------------------------------------

public static void main(String [] args){

JFrame fenetre = new JFrame("Fenetre de test"); //Constructeur avec le titre
fenetre.setSize(300, 400); //Taille : largeur, hauteur
fenetre.setLocationRelativeTo(null); //Centrage automatique sur l'écran
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Gerer automatiquement la fermeture de la fenêtre .


DJTextPane txtPannel = new DJTextPane();
String txt = "test";
txtPannel.append(txt);

fenetre.add(txtPannel); //ajouter le Panel à la fenêtre
fenetre.setVisible(true); //rendre la fenêtre visible .

}

//------------------------------------------------------

Voilà :)
Bonne continuation :)

Loloof64 .

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.