JTextPane - setText kein kein neuladen der Bilder?

TKausL

Top Contributor
Hallo.

Ich habe folgenden Code:

Java:
						JScrollPane chat_scrollbar = new JScrollPane();
						final JTextPane profile_content = new JTextPane();
						HTMLEditorKit kit = new HTMLEditorKit();
					    StyleSheet ss = new StyleSheet();
					    ss.addRule("body { align: left; width: 100%; padding: 0 0 0 0; margin: 0 0 0 0; font-family: Arial; font-size: 12px; font-weight: normal; }");
					    ss.addRule("table { border: 1px solid #FFFFFF; }");
					    ss.addRule("table td { padding: 10px; }");
					    ss.addRule("a.link { font-weight: bold; color: #0000FF; text-decoration: underline; }");
					    ss.addRule("span.nick { font-weight: bold; color: #000000; padding-left: 5px; padding-right: 50px; margin-right: 50px;}");
					    ss.addRule("div.chat { padding-top: 5px; padding-left: 5px;}");
					    ss.addRule("span.text { }");
					    profile_content.setEditable(false);
					    profile_content.getEditorKitForContentType("text/html");
					    final Document localDocument = kit.createDefaultDocument();
					    kit.setStyleSheet(ss);
					    profile_content.setEditorKit(kit);
					    profile_content.setBackground(Color.decode("0xBEBEFC"));
					    profile_content.setDoubleBuffered(true);
						
					      chat_scrollbar.add(profile_content);
					      chat_scrollbar.setViewportView(profile_content);
					      chat_scrollbar.setPreferredSize(new Dimension(430, 361));
					      chat_scrollbar.setMaximumSize(new Dimension(430, 361));
					      chat_scrollbar.setHorizontalScrollBarPolicy(31);
					      chat_scrollbar.setVerticalScrollBarPolicy(22);
					      chat_scrollbar.setAutoscrolls(true);
					      fenster.add(chat_scrollbar);

Das problem ist nun, dass wenn nun noch etwasdazukommt, und ich mit setText(text + new); den neuen text hinzufüge, dann blinkt der text kurz auf, und alle Bilder laden komplett Neu.
Gibt es eine möglichkeit das zu unterbinden bzw. eine Funktion, die nur etwas dazufügt, und nicht den kompletten Text neu setzt?
 
tja, wärst du ein Java-Programm mit dieser Antwort als Compiler-Fehlermeldung, dann müsste ich jetzt weiter arbeiten,
aber du hast ja zum Glück selber einen Kopf, kennst google usw. 😉 ,
ich habe dich darauf hingewiesen dass es das Document gibt, eine sehr wichtiger Teil des JTextPanes, der dir dabei weiterhelfen kann

erster Link bei 'document jtextpane'-Suche ist übrigens:
JEditorPane Text hinzufügen ohne ganzes Dokument neu einzuladen
 
Hey, danke 😀
jetz die frage (ich habe schon gegooglet ^^)
es steht ja da, dass man den Hinzugefügten Text Formatieren kann.
Dazu kann man z.B.
[JAVA=1]SimpleAttributeSet x = new SimpleAttributeSet();
x.addAttribute(...);[/code]
nutzen.
Ich habe jetzt schon nach SimpleAttributeSet und auch nach addAttribute gesucht, allerdings steht nirgends genau, wie ich das anwenden muss (bzw. welche möglichkeiten ich habe für addAttribute).
habe es bereits mit
Java:
SimpleAttributeSet x = new SimpleAttributeSet();
		    	x.addAttribute("bolt", true);
versucht, aber das war wohl falsch, die aushabe ist immernoch normal 😉
 
bolt == Bolzen, was du damit anfangen willst kann ich nun auch nicht beantworten,

wenn du dein benötigtes Stichwort in einem Wörterbuch nachgeschlagen hast,
dann tippe das zusammen mit SimpleAttributeSet in google ein und du wirst sicherlich von Beispielen überhäuft,

ich selber habe das übrigens noch nicht eingesetzt, neues Thema hilft vielleicht
 
Okay habe mal gegooglet und auch was gefunden.
Habe jetzt:
Java:
	JEditorPane a = new JEditorPane();
		    Document text = a.getDocument();
		    try {
		    	MutableAttributeSet x = new SimpleAttributeSet();
		    	StyleConstants.setBold(x, true);
		    	StyleConstants.setFontSize(x, 20);
		    	//x.addAttribute("bold", "true");
		    	text.insertString(text.getLength(), "Hallo\n", null);
		    	text.insertString(text.getLength(), "was gehtn?\n", x);
		    	text.insertString(text.getLength(), "wat???", null);
			} catch (BadLocationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
der 2. text bleibt aber leider unverändert.
 

Zurück
Oben