JTextPane HTML-Page anzeigen über setText()

merlinonline

Grünschnabel
Hi,
ich zeige mit Hilfe eines JTextPanes HTML Seiten an. Leider habe ich da ein Problem.

Ich lese eine Datei mit einem InputStream ein, bearbeite den daraus resultierenden String und möchte diesen gerne mit setText(String..) anzeigen lassen.

Dies funktioniert auch, sofern ich nur den body Bereich der HTML - Page übergebe. Sobald ich aber auch den HTML Head mit übergebe an die setText Methode, so wird gar nichts angezeigt. Einfach eine leere Seite.

Hat jemand eine Idee woran das liegen könnte?

oder Alternativ eine Idee, wie ich in einem JTextPane Text bearbeiten kann? Also vom Programm aus?
Sinn ist halt, dass bestimmte dinge in der HTML Datei ersetzt werden sollen und diese Datei dann angezeigt wird, damit ich diese drucken kann.


einlesen einer HTML datei:

Code:
StringBuffer ret = new StringBuffer();
DataInputStream dis = null;
BufferedReader br = null;

dis = new DataInputStream(quelle.openStream());
br = new BufferedReader(new InputStreamReader(dis));
			
String nextLine;
while((nextLine = br.readLine()) != null){
	ret.append(nextLine + "\n");


anschließend String bearbeiten, hier wohl unrelavant, es bleibt definitv eine HTML Syntax konformer String

und Zuweisung zu einem JTextPane:
Code:
private JTextPane inhalt;

inhalt.setContentType("text/plain");
inhalt.setEditorKit(new HTMLEditorKit());
inhalt.setText(text);

Wäre für einen Gedankenanstoß sehr dankbar.

Gruß
 
Du musst das EditorKit nicht selber setzten, das macht setContentType schon automatisch. Und dort solltest du für HTML entsprechend text/html und eventuell noch das charset mit angeben.

Und benutze bitte nicht hartcodiert \n denn damit läuft es auf anderen Betriebssystem eventuell nicht. Stattdessen:
Java:
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
machen und dann LINE_SEPARATOR benutzen.

Wenn du Java 6 benutzt und nicht mit Threads arbeitest kannst du auch den schnellern StringBuilder statt dem StringBuffer verwenden.
 
Hi,
besten dank für die Änderungsvorschläge, die auch gleich eingearbeitet habe. Nur leider ohne Erfolg. Er will trotzdem nicht die Seite inkl. Header akzeptieren. Immer noch leere weiße Seite ;(

komisch.

Noch ne Idee?
 
Zurück