JTextPane : Faire en sorte que le style du texte, tapé ou inséré, soit mis à jou

vveenn Messages postés 3 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 12 juillet 2010 - 11 juil. 2010 à 19:44
vveenn Messages postés 3 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 12 juillet 2010 - 12 juil. 2010 à 12:01
Je réalise un éditeur de texte en HTML et pour le style du texte j'ai choisi de mettre 3 JComboBox ( Police, taille et couleur du texte ). Ce que je veux c'est pouvoir faire en sorte que le style du texte que j'écris soit le même que celui indiqué dans mes 3 JComboBox.

J'ai pensé à implémenter un KeyListener et faire en sorte d'appeler une méthode baliseFont ( que j'ai crée et qui met à jour chaque lettre ) mais je me demande si il n'y a pas de façon plus simple de faire cela.

J'ai également désactivé la fonction "Coller" ( Ctrl + V ) et je l'ai refaite à ma façon afin que le style du texte rentré soit le même que mes JComboBox. Je me suis servi de insertString mais ca marche mal.

Si vous avez des idées je suis preneur. Je n'ai rien pu trouvé de concluant sur le net..

Amicalement.

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 juil. 2010 à 21:29
Salut,

Va voir ma source de WordPad, c'est un éditeur RichTexBox, mais tu peux facilement en faire un éditeur HTML.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
vveenn Messages postés 3 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 12 juillet 2010
12 juil. 2010 à 10:56
Salut,

J'ai lu ton code. Chez moi le problème c'est que le texte en HTML je l'envoie dans une base de donnée MySql. Le problème est le suivant

Lorsque j'écris mon texte, par exemple :
---------
BLABLA

BLABLA
---------
(j'insiste sur le saut de ligne entre les "blabla")
il apparait sous cette forme en HTML
(code synthétique)



BLABLA










BLABLA




Admettons que je stock ce texte. Lorsque je le récupère, il me revient sous cette forme :



BLABLA




(La balise "font" à disparue)




BLABLA




La balise font à disparu. Le problème est que à ce moment la, lorsque j'écris entre les blabla, la balise "font" ne se remet pas automatiquement. Ce mécanisme est extremement pénible à gérer. J'ai du créer un KeyListener qui met à jour le style après chaque lettre entrée afin de pouvoir contourné ce problème. Cette technique marche mais je ne sais pas si c'est la meilleure. C'est malheuresement la seule que j'ai trouvé.

Ton code est excellent dans le cas ou il n'y a pas d'envoi dans la BD. Mais MySql me tue.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 juil. 2010 à 11:33
Salut,

Je vois pas en quoi le passage en base t'enlève des balises... si tu le stockes au format brut (BLOB par exemple), tu dois pouvoir le récupérer tel que tu l'as stocké.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
vveenn Messages postés 3 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 12 juillet 2010
12 juil. 2010 à 12:01
J'ai retesté pour en avoir le coeur net. J'ai stocker le texte dans un blob. J'obtiens exactement le même résultat.

Je précise quand même que à l'envoie il n'y a pas de problèmes. Le texte est envoyé avec la balise "font".

Elle est donc stockée sous cette forme :
   
      BLABLA
   



   
   



   
      BLABLA
   



C'est au moment ou je fais appel au blob ( ou string ) où est stocké le texte, que l'effacement a lieu. C'est peut être un mécanisme propre à HTML qui supprime ces balises, je n'en sais rien. Je sais juste que pour me faire perdre du temps y'a rien de mieux .
0
Rejoignez-nous