Ich erstelle ein einfaches Chat-Programm, das HTML-Links zeigen soll. Mein Problem im Moment ist, dass ich den Text nicht neben dem Benutzernamen erscheinen lassen kann, wie ich es möchte.
Ich möchte, dass der Name des Benutzers fett dargestellt wird und der Text direkt daneben erscheint. Aus irgendeinem Grund erscheint der nicht fett formatierte Text zentriert.
Wenn ich den Benutzernamen nicht fett mache, funktioniert es gut. Die oberen zwei sind, wie es erscheint, wenn ich die Namen fett habe, die Mitte ist, wenn der Name nicht fett ist, die Unterseite zeigt einen Hyperlink Ich möchte es wie die mittleren zwei erscheinen, aber mit den Namen fett.
Hier ist der Code, was mache ich falsch? Beachten Sie, dass ich versucht habe, JTextPane durch JEditorPane zu ersetzen und das Gleiche passiert.
%Vor%Ich habe gerade ein bisschen herumgespielt und gesucht und folgende Lösung gefunden:
Initialisiere deine JTextPane
nach dem Setzen des Inhaltstyps mit etwas wie diesem:
Danach initialisieren Sie die folgenden zwei neuen Felder (werden in den Methoden nur für die Bequemlichkeit verwendet):
%Vor% Jetzt können Sie Ihre Methode submitALinkWithBold
folgendermaßen ändern:
Sie sollten dieses Schema auch auf die anderen beiden Methoden anwenden können ( chatWithBold
und chatNoBold
).
Beachten Sie, dass das Ergebnis nicht gut aussieht (oder gar nicht funktioniert), bis Sie alle Ihre Methoden geändert haben. Beachten Sie auch, dass es auch nach dem Ändern aller Methoden nicht wie Ihr ursprüngliches Beispiel aussieht (größerer Zeilenabstand, andere Schriftart ...). Ich denke, das könnte behoben werden, indem man pane.getEditorKit()
auf ein HTMLEditorKit
wirft und seine setStyleSheet(…)
Methode benutzt, aber das habe ich nicht versucht.
Tags und Links java swing jeditorpane jtextpane