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:
Erstellung des StyleSheets
Hinzufügen eines Textes:
Vielen Dank fürs lesen
Lg Chriss
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