Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
JTextPane und Text zu bereits existierenden Text hinzufügen?
Das Document der TextPanes holen (getDocument), und dort die Methode "insertString" benutzen. (Aber wie dass dann intern geregelt wird, weiss ich nicht. Vielleicht kannst du ja selbst eine geschickte Implementation des Documents machen).
try
{
textpane.getDocument().insertString(textpane.getDocument().getLength(), "BlaBla", null);
}
catch(BadLocationException e)
{
// sollte nie kommen
}
Wass ich jetzt noch bräuchte und Nowotny sicher auch für seinen Chat ist, wie ich über insertString HTML Tags hinzufügen kann und diese dan auch als HTML geparst werden.
Mein bisheriges ergebniss sieht immer so aus:
Code:
[b]Test
Wie schaff ich es das der Text bei obigem HTML Code also fett gedruckt wird:
Test
Hab mich bei Google schon Tot gesucht. Mit dem HTMLEditorKit komm ich nicht weiter. (Das JEditorpane hat natürlich ContentType("text/html")
Ich hab jetzt nen Mix,.. manche tags werden interpretiert und andere nicht.
Ich habe das Problem, dass ich eine Konsole bauen willl, welche Hyperlinklistener kennen muss und griechische Buchstaben anzeigen können soll.
Mein Programm wird durch die Ausgabe total ausgebremst. Jetzt habe ich das so gemacht, wie Christian beschrieben hat. Jetzt verstehe iuch nur nicht, wie ich komplett html angezeigt bekomme. Es ist mir auch rätselhaft, was dahintersteckt.
Vielleicht kann mir jmd nochma auf die Sprünge helfen.
cyas da Milbo
Edit: Ich hab verschiedene Ausgabemethoden, die alten Methoden liefern weiterhin interpretierte html, diese Funktionen holen den alten Text mit getText, dann werfe ich alle html tags raus, die ich nicht brauche (</html> z.B. und dann füge ich hinten nen neuen String an.
Wenn ich es mit getDocument und insertString mache, dann wird dieser Teil nicht interpretiert. da es eigentlich das selbe Document ist, vermute ich dass beim insertString alles was in <> steht zu & und & umgewandelt wird. Dadurch wirds später nicht mehr beim parsen als html angesehen.
Eventuell muß man bei der Zeile
Code:
doc.insertString(doc.getLength(),"
"+text, null);
nur das richtige AttributeSet setzen.
Nur ist das wieder komplettes Neuland für mich. Ich hab zwar versucht die API zu verstehen, aber irgendwie komme ich mir so vor, als würde mir jmd nen Haufen Einzelteile in die Hand drücken und sagen, bau mal nen Motor damit, nur dass ich keine Vorstellung davon habe wie nen fertiger Motor dieser Bauart funktioniert. Ich hab nur ne Vorstellung davon, was er tuen soll
Ahhja JavaInsel geht da auch nicht wirklich ins Detail und im Handbuch der Javaprogrammierung von Wesley fand ich auch nicht wirklich was dazu.
Ich hab noch alles mögliche andere ausprobiert aber ich komme nicht dahinter.
Ich hab mir gedacht, es müsste eigentlich mit dem Parser zusammenhängen. Nur leider erhalte ich keine Parser, wenn ich getParser mache.
Wenn ich den ContentType des JTextPane auf text/plain ändere, dann wird wird der String beim Befehl doc.insertString(.....) nicht verändert..
Dann wird allerdings der Text nicht interpretiert, ändere ich den Contenttype der JTextPane auf text/html, kann man sehen, wie der vorher eingefügte Text interpretiert wird. Nur damit kann man nicht das Problem lösen, weil erstens siehts sche.... aus und zweitens kommt er dann durcheinander mit den Threads.
Desweiteren habe ich die Strategie versucht ein EditorKit für text/plain zu erstellen (weil da wird da String ohne Veränderung inserted) und auf eine JTextPane welche für den Content text/html gesetzt wurde, anzuwenden. Da kommt dann leider ne Cast exception.
Warum wird es nicht dem Programmierer selbst überlassen sich zu überlegen, wie was interpretiert werden soll. Was hast das für einen Sinn, wenn man den Content auf html setzt und dann keine html tags mehr inserten kann. Nur durch setpage, was aber ziemlich viel Zeit frisst. Das es logisch sein soll verstehe ich nicht.