Ich habe einen JTextPane und ich habe Text in diesem JTextPane. Da ich HTML jedoch innerhalb des Bereichs verwendet habe, wurde der Text automatisch in Times New Roman geändert.
Ich versuche, die Schriftart innerhalb der JTextPane auf die Standardschriftart der GUI (die Schriftart der JTextPane, wenn es nicht HTML ist). Allerdings kann ich die Schriftart nicht einfach auf eine Schriftart setzen, da sie vom Betriebssystem abweicht. Daher möchte ich einen Weg finden, die Standardschriftart zu erhalten und dann den Text, den ich habe, auf die Standardschriftart zu ändern.
Um zu demonstrieren, wie der Text bei der Konvertierung in Times New Roman umgetauscht wird, ist der folgende Code das Format, das ich verwendet habe. Wie könnte ich es ändern, um mein Ziel zu erreichen?
%Vor%Danke!
Der einfachste Weg ist wahrscheinlich ungefähr so:
%Vor%Damit erhalten Sie die Standardschriftart. Dann wenden Sie es einfach mit CSS an:
%Vor%Das Folgende wird den Trick machen:
%Vor% (Beachten Sie, dass JTextPane
erweitert JEditorPane
.)
Aktualisierung (Aug 2016):
Für die Einstellung zu überleben Look & amp; Gefühl und Systemänderungen (z. B. Schriftarten in der Windows-Systemsteuerung geändert) kann die Zeile hier platziert werden:
%Vor%(Dies wird auch während der Konstruktion genannt.)
Der JComponent-HTML-Renderer verwendet eine eigene Schriftart und nicht die der JComponent. Um die Komponente zum Rendern zu bringen, müssen Sie die Schriftattribute in der HTML-Zeichenfolge festlegen. Unter anderem müssen Sie die Schriftfamilie, Größe, Fett- / Kursivschrift usw. einstellen.
Als Beispiel könnten Sie Folgendes tun:
%Vor%Es wäre ziemlich trivial, eine Funktion zu erstellen, die dies für Sie erledigt. Übergeben Sie eine JComponent und eine Zeichenfolge, und es würde den HTML-Text für Sie erstellen, einschließlich aller Schriftart-Tags.