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

Soyez le premier à donner votre avis sur cette source.

Vue 12 326 fois - Téléchargée 749 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
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

De rien :)
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
Messages postés
342
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 .
Messages postés
342
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 .
Messages postés
342
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 .
Afficher les 20 commentaires

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.