JEditorPane, HTML EditorKit und HTMLDocument

  • Themenstarter Themenstarter ChristianBr86
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
C

ChristianBr86

Gast
Hallo.

Kann mir jemand sagen wie ich in einem JEditorPane einen mit HTML formatierten Text hinzufügen kann, OHNE den ganzen inhalt neu schreiben zu müssen?

Mit setText() direkt im JEditorPane wird alles in HTML dargestelt wenn ich aber über insertString() einen Text ins HTMLDocument einfüge werdne die HTML Tags angezeigt. Mit dem HTMLEditorKit bekomm ich gar keine anzeige hin.

Bei Google find ich auch alles, nur nichts was mir weiterhilft.

Hoffe ihr könnt mir helfen 🙂
 
ChristianBr86 hat gesagt.:
wenn ich aber über insertString() einen Text ins HTMLDocument einfüge werdne die HTML Tags angezeigt.
? sicher dass du den text an die richtige stelle eingefügt hast? beachte: das </html> schlusstag muss ganz am ende stehen. und vorher solltest du noch per setContentType("text/html") den richtigen content type setzen. dann sollte das eigentlich gehen.
 
Code:
JEditorPane editor = new JEditorPane();
this.setLayout(new BorderLayout());
this.add("Center", editor);
editor.setEditable(false);
editor.setContentType("text/html");
HTMLDocument doc = (HTMLDocument) editor.getDocument();
try
{
	doc.insertString(0,"<html><body>[b]test[i]test[/i][/b]</body></html>",null); 
}


Also so hab ich das... interessiert den aber auch nicht. Muss doch irgendwie möglich sein wäre ich ja nicht der erste wo sowas macht...
 
achso jetz versteh ich. du fügst den String is das dokument ein, dann musst du das Document der JEditorPane auch wieder zuweisen mit setDocument. einfacher wär es wohl wenn du direkt JEditorPane.insertString() benutzen würdest...
 
Nur gibt es keine Methode "JEditorPane.insertString"... (auch nicht in der Superklasse) :wink:

Vielleicht hilft auch dieser Thread, der zweitletzte Post hat noch was zum HTMLDocument.
 
Habs gelesen...
Nur die Sache mit dem Element bekomm ich nicht hin.

Immerhin bin ich mal soweit das die .java kompiliert wird.... nur leider wird nichts angezeigt es sei den ich setzte es mit setText.

Code:
HTMLDocument doc = (HTMLDocument) editor.getDocument();
el = doc.getElement("????????");
try
{
	try
	{
		doc.setInnerHTML(el, "<html>[b]Test 2.040.495[/b]</html>");
		//editor.setDocument(doc);
	}
	catch(IOException e)
	{
		System.out.println("blabla");
	}
}
catch(BadLocationException e)
{
	System.out.println("blabla");
}

Was muss ich bei getElement eintragen? was IST eigentlich ein Element?. Schätze mal wenn das Stimmt dan läufts auch.
Bei Google find ich ja alles mögliche Fachgeplänkel... leider bin ich nicht vom Fach.
 
Das Root Element sollst du eingeben.

Das "<HTML"> Element ist ein Root Element!

:arrow: doc.getElement("html");
 
Ein Element ist also ein HTML Tag?

Hab jetzt getElement("html");

Ändert leider auch nichts.

Auch nicht wenn ich mit editor.setText("<html>"); einfüge.
Oder im Dokument:
doc.insertString(0,"<html>", null);


Beides füge ich VOR dem getElement() ein.

Mein kompletter Code:
Code:
Element el;
JEditorPane editor = new JEditorPane();
this.setLayout(new BorderLayout());
this.add("Center", editor);
editor.setEditable(false);
editor.setContentType("text/html");
HTMLDocument doc = (HTMLDocument) editor.getDocument();
el = doc.getElement("html");
try
{
	try
	{
		doc.setInnerHTML(el, "[b]Test[/b]");
	        editor.setDocument(doc);
	}
	catch(IOException e)
	{
		System.out.println("");
	}
}
catch(BadLocationException e)
{
	System.out.println("");
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben