Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

JTEXTPANE ETENDU ET FACILITE (LECTURE,ECRITURE RTF),COULEURS,...


Information sur la source

Catégorie :Swing Classé sous : swing, jeditorpane, couleur, rtf, police Niveau : Débutant Date de création : 03/06/2007 Date de mise à jour : 03/06/2007 16:32:18 Vu / téléchargé: 6 646 / 418

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note


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

  • //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
//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

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

03 juin 2007 16:32:18 :
j'ai corriger un truc et ajotue une methode a l'exemple ... a vous de les modifier pour les adapter ...

Commentaires et avis

signaler à un administrateur
Commentaire de loloof64 le 04/06/2007 12:31:52

:) 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)

signaler à un administrateur
Commentaire de sheorogath le 04/06/2007 15:13:33 administrateur CS

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

signaler à un administrateur
Commentaire de loloof64 le 05/06/2007 12:11:48

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)

signaler à un administrateur
Commentaire de sheorogath le 05/06/2007 12:40:57 administrateur CS

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 :'(

signaler à un administrateur
Commentaire de sheorogath le 05/06/2007 12:42:38 administrateur CS

oups :

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

signaler à un administrateur
Commentaire de loloof64 le 05/06/2007 12:52:32

Merci :)
Je fais la modif. juste pour moi (je ne m'approprierais pas ton code)

Je te souhaites bon courage pour ton bac .

signaler à un administrateur
Commentaire de loloof64 le 05/06/2007 12:59:16

Je laisse tomber, je suis trop nul pour faire la modif.

signaler à un administrateur
Commentaire de bensalah_tarek le 16/06/2007 21:29:00

je ne trouve pas la methode main dans ton programme DJTextPane.java
peut tu m'aider

signaler à un administrateur
Commentaire de sheorogath le 16/06/2007 21:45:18 administrateur CS

normal y en a pas , c'est fait pour etre utilisé ...
ce n'est pas un programme a proprement parler ...
c'est fait pour aller dans un programme ...

signaler à un administrateur
Commentaire de bensalah_tarek le 19/06/2007 15:51:50

vous dite
c'est fait pour aller dans un programme ...
comment faire pour l'importer dans une JFrame
                             respet

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 15:54:30 administrateur CS

ben tu le met ou tu veux mais faut changer alors la directive package mais la si tu le met il faut le mettre dans :
com\daedric\swing

et importer com.daedric.swing.DJTextPane;

signaler à un administrateur
Commentaire de bensalah_tarek le 19/06/2007 21:06:14

fot(int i=1;i<1000;i++){
System.out.println("merci");
                        }

signaler à un administrateur
Commentaire de jijijoujou le 20/08/2008 22:04:34

merci pour votre code

signaler à un administrateur
Commentaire de sheorogath le 20/08/2008 22:13:01 administrateur CS

de rien ^^
bonne utilisation

signaler à un administrateur
Commentaire de lOeil le 24/03/2009 00:23:51

Bonjour,

désolé pour cette question mais je débute en Java :(

Je n'arrive pas à afficher la fenêtre avec mon texte.

J'ai créé une classe main() mais quand je compile mon programme je vois java qui lance mon Jar mais se ferme dans les 2s :


package com.daedric.swing;

public class main {
   public static void main (String[] args){
       DJTextPane TxtPannel = new DJTextPane();
       String txt = "test";
       TxtPannel.append(txt);
   }
}



Quelqu'un pourrait m'aider s'il vous plait :) ?

signaler à un administrateur
Commentaire de loloof64 le 24/03/2009 10:21:47

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 .

signaler à un administrateur
Commentaire de loloof64 le 24/03/2009 10:25:45

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 .

signaler à un administrateur
Commentaire de loloof64 le 24/03/2009 10:27:39

P.S (2) : Et n'oublies pas l'import de la classe javax.swing.JFrame .

signaler à un administrateur
Commentaire de lOeil le 25/03/2009 09:51:39

Merci beaucoup c'est impeccable :D

signaler à un administrateur
Commentaire de loloof64 le 25/03/2009 18:49:28

De rien :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Composants swing et fond transparent !!! [ par wt ] Salut tlm,Comment affecte-t-on une couleur transparente à un composants swing, un JPanel par exemple ?Je dispose d'1 couleur en gradient : son intensi Débutant en swing : questions de base [ par java versus hardtek ] Voilà voilà je débute complètement avec swing et je vois pas trop encore les possibilités du truc1°) J'ai un tableau de JButton et je dois pouvoir mod couleur XML avec JEditorPane [ par counech ] Bonjour, J'ai un JEditorPane ou j'ins&#232;re des balises XML. je voulais savoir si c'etait possible de mettre des couleurs dans mon JEditorPane, his [Swing : JTextField] : Changer la couleur de la bordure [ par Foub12 ] Bonjour, je souhaite juste changer la couleur de la bordure d'un JTextField sans modifier les marges créés par défaut. <font [Swing][Jtable] Couleur de fond [ par terminagroo ] Bonjour,Voil&#224; en fait je veux cr&#233;er ma propre JTable, avec une couleur sp&#233;cifique. Donc pour l'instant je suis arriv&#233;e &#224; chan Changement de couleur et de police d'un élément en surbrillance dans un JMenu [ par piero_pix ] Bonjour &#224; tous,j'ai &#233;crit une applet contenant un JPopupMenu qui re&#231;oit un flux &#224; parser contenant tous les &#233;l&#233;ments du Format de police. [ par developvbdebut ] Bonsoir tout le mondeje souhaiterai savoir comment changer la taille,couleur&nbsp;de la police.des labeldes texfielddes boutonPourriez m'aider pour l' Couleur de police dans un JTextArea !!! [ par dioz ] Bonjour,Je souhaite pouvoir afficher un texte dans un JTextArea dans lequel les mots peuvent être de différentes couleurs. Je sais qu'il faut utiliser [Swing] JSplitPane et couleur du divider [ par terminagroo ] Bonjour,Voil&#224; je veux cr&#233;er mon propre JSplitPane avec mon propre divider. C'est-&#224;-dire qu'en fait je veux changer la couleur, la bordu police et couleur dans jtable [ par niwakun ] Bonjour,je souhaiterais pouvoir changer la police des cellules d'une colonne en fonction de sa valeur ("valide","non valide") par exemple...et aussi l


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.