[Debutant] JTextPane, ne pas afficher les balises html

JTextPane, ne pas afficher les balises html [Debutant] - Java - Programmation

Marsh Posté le 28-11-2011 à 18:06:35    

Bonjour à tous,
 
Je souhaite créer une page html à partir d'un programme Java et j'aimerai que dans mon JTextPane, lorsque j'écris un mot et que je veux le mettre en gras, je le surligne et qu'il se mette en " gras" et non pas en "<b> gras </b>".
 
Si je fais  

Code :
  1. monJtextpane.setText("<b>" + monJtextpane.getSelectedText() + "</b>" );

ça marche mais le problème est qu'il remplacera tout le texte de mon JTextPane par ma sélection en gras.
 
Donc j'ai voulu faire

Code :
  1. monJtextpane.replaceSelection("<b>" +monJtextpane.getSelectedText()+ "</b>" );

Mais cela m'affiche les balises sans me mettre le texte en gras.
 
Malgré un grand parcours de la javadoc, je ne trouve pas comment faire, donc si vous avez une idée, merci  :)


Message édité par Guillaumux le 28-11-2011 à 20:05:25
Reply

Marsh Posté le 28-11-2011 à 18:06:35   

Reply

Marsh Posté le 28-11-2011 à 20:04:39    

J'ai finalement trouvé une méthode mais pas très pratique:
 

Code :
  1. StringBuffer s =new StringBuffer(monJtextpane.getText()); // on prends le texte du JTextPane
  2. int deb=s.indexOf(monJtextpane.getSelectedText()); // index du début du mot
  3. int fin = s.indexOf(monJtextpanee.getSelectedText()) + monJtextpane.getSelectionEnd()-monJtextpane.getSelectionStart(); // index fin du mot
  4. String st= balise.getBegining() +monJtextpane.getSelectedText()+balise.getEnd(); // String entouré des balises
  5. s.replace( deb , fin , st ); // on remplace dans le string buffer le mot surligner par le mot entouré de balise
  6. String chaine=new String(s); // on le transforme en String
  7. monJtextpane.setText(chaine); //et on modifie tout le texte


 
Mais ça ne marche que lorsque l'on sélectionne une seule ligne :/
 
Donc si vous avez une autre solution, je suis preneur  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed