HTMLDocument / StyleSheet

chriss_2oo4

Erfahrenes Mitglied
Hi,

Mein Problem:

Ich habe ein HTMLDocument, das ich in einen JTextPane anzeige. Die Formatierung / Gestaltung möchte ich über CSS-Regeln gestalten. Dazu verwende ich ein Objekt der Klasse StyleSheet.
Allerdings wird der Text, den ich hinzufüge nicht im Body der HTML-Seite angezeigt.

Ich erstelle eine Zusammenfassung (mit <div id=Messages>) mit docChat.insertAfterStart(docChat.getDefaultRootElement(), "<div id=\"messages\"></div>"); danach füge ich Nachrichten so ein: docChat.insertAfterStart(docChat.getElement("messages"), strMessage);

Was mach ich falsch?

Initialisierung der JTextPane-Komponente:
Code:
                               txtChat = new JTextPane();

				txtChat.setContentType("text/html");
				txtChat.setEditable(false);
				
				//Kit
				kitChat = new HTMLEditorKit();
				StyleSheet myStyleSheet = GetCurrentStyleSheet();
				kitChat.setStyleSheet(myStyleSheet);
				
                                //Document
				docChat = (HTMLDocument)kitChat.createDefaultDocument();

				docChat.insertAfterStart(docChat.getDefaultRootElement(), "<div id=\"messages\"></div>");
				txtChat.setDocument(docChat);


Erstellung des StyleSheets


Code:
private StyleSheet GetCurrentStyleSheet() 
	{
		StyleSheet myStyle = new StyleSheet();
		myStyle.addRule(   "body { " +
				                   "font-family: " + this.strFont + "; " +
				                   "font-size:" + this.strFontSize + "pt; " +
				                   "color: " + GetColorHexCode(strColorFont) + "; " +
				                   "background-color: "  + GetColorHexCode(strColorBackground) + "; " +
				                   "text-align: left; " +
				                   "vertical-align: top; " +
				                 "}" );
		
		myStyle.addRule(  ".Eliza{ font-weight: bold; color:" + this.GetColorHexCode(strColorEliza) + "; }" );
		myStyle.addRule(  ".User{ font-weight: bold; color:" + this.GetColorHexCode(strColorUser) + "; }" );
	
		return myStyle;
	}

Hinzufügen eines Textes:
Code:
//Mit dieser Methode kann eine Nachricht zur Chat-Textbox hinzugefügt werden
	public void AddMessage(String a_strMessage)
	{
		String strMessage = "<p class=\"User\">" + a_strMessage + "</p>"; 
		try
		{
			docChat.insertAfterStart(docChat.getElement("messages"), strMessage);
		}
		catch(javax.swing.text.BadLocationException e1){}
		catch(java.io.IOException e2){}
	}

Vielen Dank fürs lesen

Lg Chriss
 
Zurück