begin process at 2010 02 10 11:06:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

HTML ligne par ligne sur un JEditorPane


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

HTML ligne par ligne sur un JEditorPane

mercredi 18 août 2004 à 22:04:16 | HTML ligne par ligne sur un JEditorPane

safisoft

salut les javateux;
j'ai un JEditorPane qui affiche une page html, j'utilise le constructeur JEditorPane(URL url), la problème c'est que je ve afficher la page ligne par ligne (balise par balise), j'ai fais un Thread qui lit les lignes du fichier et les affiche mais j'ai le code qui est affiché, alor j'ai reglé la propriété type du JEditorPane sur "text/HTML" mais le pbm resiste; silvousplais que dois je faire?

BLATEER
mercredi 27 août 2008 à 20:44:44 | Re : HTML ligne par ligne sur un JEditorPane

Nitruk

Tu peux faire ton JEditorPane avec les arguments "text/html" et "" d'office, pour avoir un éditeur de HTML vide, puis avec ton Thread gérer une variable String vide au départ, dans laquelle tu ajoutes ligne par ligne ton texte et que tu attribues au fur et à mesure à ton JEditorPane par setText().

C'est la méthode la plus simple, mais elle a un inconvénient : à chaque ajout lde logne la page sera rehcargée par l'éditeur, ce qui fait notemment remonter le Caret le cas échéant.
Sinon tu peux réellement mettre à jour le domcument au fur et à mesure, en extrayant l'objet document de ton JEditorPAne avec getDocument(), puis en utilisant la méthode insertBeforeEnd() qui ajoute comme son nom l'indique le texte (balises y compris) que tu lui soumets juste avant la balise de fin d'un élément (c'est à dire en l'occurence une balise) que tu lui soumets.

Pour obtenir le dit objet Element, tu peux commencer par donner au constructeur du Pane un document un peu plus élaboré que la chaîne vide que je te suggérais plus haut :

<html>
<head>
contenu du head
</head>
<body>
<div id="monid">
</div>
</body>

tu peux alors créer un élément ainsi :

JEditorPane pane = new JEditorPane(""text/html", "structure_de_ta_page");
Element monid = pane.getDocument().getElement("monid");

Comme tu l'auras compris, le fait d'appeler alors pane.getDocument().insertBeforeEnd(monid, "montexte") insérera ton texte juste avant la balise </div>
Le Document possède également une méthode getDefaultRootElement() qui doit correspondre à la balise body();

Tu peux aussi utiliser un HTMLEditorKit (à la place de tout ça), et utiliser sa méthode insertHTML.
Il faut alors que tu fasses des essais pour voir combien de bytes prennent réellement les balises </body> et </html>, ainsi qu eles espaces et sauts de lignes qui les séparent, pour pouvoir insérer ton texte au bon endroit. Nous appellerons ce nombre N. Tu devrais alors obtenir :

JEditorPane pane = new JEditorPane();
HTMLDocument doc = (HTMLDocument)pane.getDocument();  //getDocument() est de type Document, mais l'objet
HTMLEditorKit  edit = new HTMLEditorKit();                            //renvoyé est bien un HTMLDocument)

Puis pour chaque ajout de texte :

edit.insertHTML(doc, pane.getText().length() - N, 0, 0, null);

Avec ça tu devrais pouvoir faire ce que tu veux ;)


Nitruk


Cette discussion est classée dans : affiche, ligne, page, html, jeditorpane


Répondre à ce message

Sujets en rapport avec ce message

pb. : la page html me coupe le graphe que mon applet affiche [ par baziz ] Bonjour,j'arrive pas à afficher tout le contenu de mon applet dans la page html (le graphe qu'affiche l'applet est coupé au niveau de la limite de la Affichage d'une page html dans un JEditorPane [ par facosh ] Bonjour a toutes et a tous,J'ai un petit soucis avec l'affichage d'une page HTML dans un JEditorPane. Ce soucis concerne l'affichage d'images. Alors v Heyy personne ne sais travailler avec JEditorPane? [ par safisoft ] salut les javateux;c'est un message que j'ai déposé le 18/08 mais personne n'a répondu!j'ai un JEditorPane qui affiche une page html, j'utilise le con Probleme avec JEditorPane HTML impression [ par oleronpower ] Bonjour à tous,J'ai un petit probleme avec JEditorPane, je n'arrive pas a savoir quand la page html est complétement chargée, conséquence les impressi récupération du code html d'une page web [ par yvon_bizimana ] Bounjour tout le monde! Dans le cadre de mon projet(J2EE/jsp) que je réalise avec eclipse europa je dois afficher l'arborescence d'une page web dont l prob avec un jList [ par metalkev64 ] Salut,         j'utilise un code HTML dans un vector afin d'afficher un tableau dans un jList voiçi le code : Affichage.setElementAt("&lt ouvrir une page HTML [ par lafolle24320 ] Bonjour, Je suis à la recherche d'une solution pour ouvrir une page HTML depuis du code JAVA. Sachant que je travaille avec un jdk 1.4 et éventuellem Pb d'interprétation des balises html lors d'un include d'une page dans une autre (JSF) [ par gaet_045 ] Bonjour à tous, je rencontre des problèmes d'interprétation des balises html lorsque je réalise un include d'une page dans une autre. En fait les bali Comment appeler une page html? [ par TSI3ISSAT ] Bonjour!!! J'ai fait la page d'aide sous forme html <font color="# fermer page html [ par darkgenesis ] Bonsoir,je vous expose mon problème, j'ai fait 2 applets contenues dans 2 pages html différentes.au démarage je lance la premiere page html donc la pr


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales