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

Soyez le premier à donner votre avis sur cette source.

Vue 12 129 fois - Téléchargée 739 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
-
:) Salut Sheorogath :)
Mes félicitations, ton code est super :) Complet et simple d'utilisation, bravo :)
Ton approche correspond d'avantage à l'esprit Word que l'était la mienne :)
(10/10)
sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11 -
merci , :$ super je sais pas mais utile certainement .. du moins pour moi
je n'ai pas pris une approche specifique mais j'ai fait de tel maniere a ce que se soit facilement utilisable et modulable pour une application quelconque
cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012
-
En tous cas, elle est meilleure que la mienne :). Par contre, je sais que l'on peut se débrouiller avec le package java.util de j2se, mais cela aurait été encore mieux si tu mettais une fonction static du genre FontUtil.isAValidFont(String), afin de savoir si une fonte fait partie du système local :) Qu'en penses-tu ? (C'est en ressentant moi-même ce besoin que ce m'est venu à l'esprit)
sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11 -
reviosant mon bac j'ai pas trop le temps de voir mais un truc de ce genre doit etre faisable en ajoutant un truc du genre :
static {
Vector<String>family = ...
for(String s : FontUtil.getFamily())
family.add(s);
}
public static boolean isValidFont(String s){
return family.contains(s);
}

et l'utiliser comme ceci :

if(FontUtil.isValidFont(tafontenstring))txt.setFont(tafontenstring);

bon je retourne sur ma physique nucleaire et ses emissions plus la decroissance :'(
sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11 -
oups :

static {
Vector<String>family = ...
for(String s : getFamily())
family.add(s);
}
public static boolean isValidFont(String s){
return family.contains(s);
}

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.