Portal > Foren > Java > Desktop-Applikationen und Grafik > JEditorPane Text hinzufügen ohne ganzes Dokument neu einzuladen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 10.05.2005, 23:31 Nach oben    #1
milanwb
Gast
 
Beiträge: n/a
Standard JEditorPane Text hinzufügen ohne ganzes Dokument neu einzuladen

Hallo,

ich programmiere zur Zeit einen kleinen Chatclient, nur das Problem ist für die Farben benutze ich HTML mit einer JEditorPane.
Ich habe schon mehrere Möglichkeiten gesucht eine Art append Methode (wie bei JTextArea) zu finden, jedoch ohne erfolg.
Zur Zeit Lade ich den Text in einen String message und gebe diesen dann aus:

Code:
public void log(String e) {

   try {

	 message += e + "<br>" ;
	 nachricht.setText(message);
	 autoscroll();
..
..
..
usw...
Habe auch schon unsern Freund google befragt, jedoch ohne Erfolg.
Hoffe ihr könnt mir helfen eine Art appends Methode für die JEditorPane zu finden

Gruß

Micha
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.05.2005, 00:15 Nach oben    #2
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 581
Standard

ich weiß zwar nicht ob es eine add-methode gibt, aber selbst wenn hättest du wahrscheinlich ein problem.
irgendwann sind so viele daten im pane,dass das system dadurch ausgebremst wird.
Vielleicht solltest du die daten in einem vektor oder ähnlichem speichern und dann nach einer gewissen anzahl von elementen die ersten wieder rausschmeißen, und bei der aktualiesierung einfach den vektor in den pane schreiben.

gruß
sparrow
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.05.2005, 11:18 Nach oben    #3
milanwb
Gast
 
Beiträge: n/a
Standard

Hi,

mit dem Vektor das wäre eine Idee und danke für den Tipp. Ich probier das gleich mal aus, dann schreibe ich nochmals. Aber ich glaube nicht, dass ich dadurch das neuladen verändern könnte?!
Weil ob das nun ein String doer ein Vektor ist, ist denk ich mal egal, das neuladen dürfte nicht behoben werden.

Gruß

Micha
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.05.2005, 15:52 Nach oben    #4
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Du kannst über das Document Text hinzufügen.

http://java.sun.com/j2se/1.5.0/docs/.../Document.html

Beispiel:
Code:
Document doc = editorPane.getDocument();
doc.insertString(doc.getLength(), "test", null);
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.05.2005, 16:00 Nach oben    #5
milanwb
Gast
 
Beiträge: n/a
Standard

Hi,

also das einfügen funktioniert super... nur das Problem ist irgendwie funktioniert das HTML dann nicht mehr... Gibt es da noch ne Möglichkeit das wieder zu aktivieren?

Oder habe ich das vielleicht doch nur falsch angewendet? Hier der Code,w as ich geschrieben habe:

Code:
  public void log(String e) {

   try {

	 //message += e + "<br>" ;
	 //nachricht.setText(message);
	 Document doc = nachricht.getDocument();
	 doc.insertString(doc.getLength(), e + "<br>", null);
	 nachricht.setContentType("text/html");
	 autoscroll();
Gruß

Micha
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.05.2005, 16:28 Nach oben    #6
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Guck dir mal die Dokumentation für insertString an, und dann könntest du nochmal drüber nachdenken, ob du wirklich HTML brauchst.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.05.2005, 19:54 Nach oben    #7
milanwb
Gast
 
Beiträge: n/a
Standard

Hi,

danke wird probiert . Du meintest die Attribute ne?
Wenn du jetzt noch eine Idee hast wie ich einfach Bilder anstelle von z.B. einfügen kann, dann bissu spitze *gg*
Bin noch ziemlich ein Anfänger im Gebit Java. Aber die Sprache ist ja rechte einfach...

Gruß Micha
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.05.2005, 21:18 Nach oben    #8
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Scheint so, als ob du in dem Fall JTextPane statt JEditorPane verwenden müsstest: insertIcon
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.05.2005, 00:50 Nach oben    #9
milanwb
Gast
 
Beiträge: n/a
Standard

Wäre es auch eine Möglichkeit eine JTable zu benutzen? Oder gibt das bei zu vielen Zeilen Probleme? Dort könnte man dann die Smilies mit HTML einfügen usw...
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.05.2005, 09:11 Nach oben    #10
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Gefällt dir die Methode nicht? Du müsstest nur ein Objekt der Klasse ImageIcon erzeugen und hinzufügen.
Sollte eigentlich ganz simpel sein.

JTextPane erbt von JEditorPane, du müsstest also nur zwei Zeilen deines Programmcodes verändern (und selbst das ginge per Suchen&Ersetzen).
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.05.2005, 11:23 Nach oben    #11
milanwb
Gast
 
Beiträge: n/a
Standard

Nur das Problem ist, dass ich dann Befehle wir <fett><farbe> usw machen möchte und man die mit </fett> dann nur das fett weg nehmen muss das wäre sehr kompliziert und sehr langartig, denk ich...
Und der Smile wird nicht angezeigt, habe das mal probiert. Das Bild läd er, gibt auch die richtigen Maße an. Und er hat dann solche Abstände.
Ich schreib hier mal den Code hin wie ich das eingebunden habe, sobald ich zu Hause bin!
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.05.2005, 11:52 Nach oben    #12
milanwb
Gast
 
Beiträge: n/a
Standard

ich habe ein SimpleAttributeSet x genommen
und dann dementsprechend wenn es <fett><rot> z.B. gibt ersetzt durch das einfügen von StyleConstaints.setBold = (x, true)
und dann halt die Farbe gesetzt..

nur das problem ist ja der rest bleibt auch in der farbe und würde erst bei einer erneuten eingabe von <fett> z.B. eingefügt... Wenn man jetzt nur rot weg haben möchte, dann müsste man sehr komplizierte abfragen machen...
Oder hast du da noch ne andere Idee?
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.05.2005, 15:24 Nach oben    #13
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Du könntest doch das ganze aufteilen, also einen kleinen Parser schreiben, der deine Tags parst.
Das sollte so schwer nicht sein.

Also, wenn du <rot> findest fügst du dem Attribut die entsprechende Farbe hinzu, wenn du </rot> findest entfernst du es wieder - bzw. fügst den Text samt attribut hinzu und entfernst die Farbe anschliessend wieder.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.05.2005, 16:01 Nach oben    #14
milanwb
Gast
 
Beiträge: n/a
Standard

kannst du mir dazu ein kleines beispiel schreiben?
Also z.B.

<rot> dies ist rot <fett> dies ist fett und rot </rot> dies ist nur fett

Soll ja so aussehen:

dies ist rot dies ist fett und rot dies ist nur fett

Dann müsste ich ja mit nem Stringtokenizer z.B. heraus nehmen und die einzelnen Teile ja einen bestimmten Tag hinzufügen.
Also:

StringTokenizer st = new StringTokenizer(meinText, "<fett>"). Also würde ich alles was danach kommt einen bestimmten Attribut hinzufügen und den Text der danach folgt als fett oder nicht? Solte jetzt noch <rot> da sein dass bekommt dieses Attribut auch noch rot dazu und dann müsste ich den Text mit insertString einfügen. Nur das wäre doch sehr viel Arbeit oder nicht? Weil ich weiß ja nicht wieviele versch. Attribute ich erstellen muss oder?
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JEditorPane -> Text formatieren Binary Allgemeine Java-Programmierung 4 15.12.2006 18:18
Bild im Text mit css? code5 HTML, XML und CSS 11 20.12.2005 13:15


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45