![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
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...
Hoffe ihr könnt mir helfen eine Art appends Methode für die JEditorPane zu finden Gruß Micha |
|
| | Nach oben #2 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 581
|
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 |
| | |
| | Nach oben #3 |
| Gast
Beiträge: n/a
|
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 |
|
| | Nach oben #4 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.129
|
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. |
| | |
| | Nach oben #5 |
| Gast
Beiträge: n/a
|
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();
Micha |
|
| | Nach oben #6 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.129
|
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. |
| | |
| | Nach oben #7 |
| Gast
Beiträge: n/a
|
Hi, danke wird probiert Wenn du jetzt noch eine Idee hast wie ich einfach Bilder anstelle von Bin noch ziemlich ein Anfänger im Gebit Java. Aber die Sprache ist ja rechte einfach... Gruß Micha |
|
| | Nach oben #8 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.129
|
Scheint so, als ob du in dem Fall JTextPane statt JEditorPane verwenden müsstest: insertIcon
__________________ Patrick Gotthardts Weblog. |
| | |
| | Nach oben #10 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.129
|
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. |
| | |
| | Nach oben #11 |
| Gast
Beiträge: n/a
|
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! |
|
| | Nach oben #12 |
| Gast
Beiträge: n/a
|
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? |
|
| | Nach oben #13 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.129
|
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. |
| | |
| | Nach oben #14 |
| Gast
Beiträge: n/a
|
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? |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ä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 |