Custom Font in AttributedString Java

Splayfer

Mitglied
Hey zusammen,

ich arbeite seit einiger Zeit an einem Discord Level System. Unter anderem sollte man dort mithilfe des /rank Commands in der Lage sein, ein Bild mit Leveldetails zu erhalten. Ich habe es auch hinbekommen, dass die Bilder und Texte etc. richtig angeordnet sind, aber was ich bis jetzt immer noch nicht geschafft habe ich das ändern der Schriftart.

Ich habe eine .ttf Datei ein meinen src Ordner importiert und einen AttributedString definiert, aber es ist zwecklos. Jedes mal wenn ich in Zeile 15 versuche die Schriftart zu ändern, verschwindet der Text auf dem Bild einfach und es wird keine Exception ausgeworfen.

Kann mir da irgendwer weiterhelfen?

Gruß Splayfer

[CODE lang="java" title="Mein Code:" highlight="15"] Font leagueGothic = null;

try {

leagueGothic = Font.createFont(Font.CENTER_BASELINE, new File("src/media/fonts/LeagueGothic-Regular.ttf"));
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(leagueGothic);

} catch (Exception exception) {
exception.printStackTrace();
}

AttributedString leveltxt = new AttributedString("Level: " + level + ".level"));
leveltxt.addAttribute(TextAttribute.SIZE, 30);
leveltxt.addAttribute(TextAttribute.FONT, leagueGothic);

BufferedImage container = new BufferedImage(934, 282, BufferedImage.TYPE_INT_ARGB);
Graphics g = container.getGraphics();
g.drawString(leveltxt.getIterator(), 400, 50);[/CODE]
 

Anhänge

  • 853618861294485534[1].png
    853618861294485534[1].png
    217,9 KB · Aufrufe: 2
K

kneitzel

Gast
Also das mit dem nicht gefunden: Dann müsst eine IOException geworfen worden sein. Das kann man mal überprüfen, aber selbst wenn das der Fall ist: Das würde nicht das Problem lösen.

Font.createFont erzeugt einen Font der Größe 1. Du wirst also die Schrift haben, aber mit Größe 1 wirst Du nichts lesen können aber vermutlich wirst Du paar schwarze Punkte finden können :)

The new Font is created with a point size of 1 and style PLAIN.

Was Du also machen könntest, wäre eine abgeleitete Font mit der gewünschten Größe zu übergeben. Also z.B.:
leveltxt.addAttribute(TextAttribute.FONT, leagueGothic.deriveFont(25f));
um eine Font in einer Größe von 25 zu bekommen.

Das mit dem GraphicsEnvironment wirst Du vermutlich auch wegnehmen können, denn Du hinterlegst die Font selbst ja. Du wirst also vermutlich irgendwo den AttributedString selbst malen mit einem Aufruf wie:
g2d.drawString(attributedString.getIterator(), 15, 60);
 
K

kneitzel

Gast
Und da das mit dem Laden prinzipiell angesprochen wurde. Das Laden kann man ggf. als Ressource durchführen:
Font font = Font.createFont(Font.TRUETYPE_FONT, getClass().getResourceAsStream("/media/fonts/LeagueGothic-Regular.ttf"));

Das wäre der Aufruf, wenn der src Ordner auf der Ressource Ordner ist (Also typisches Java Projekt in Eclipse oder Intellij). Wenn da Resources anders hinterlegt sind a.la. src/media ist ein Ressource Ordner, dann wäre das entsprechend anzupassen.
Der Pfad ist auf jeden Fall ab dem Ressource Ordner anzugeben - und man kann das Ausgabe-Verzeichnis prüfen (bin, out oder wo auch immer das Ergebnis der Übersetzung hin kopiert wird), wo die ttf Datei zu finden ist...
 

Splayfer

Mitglied
Und da das mit dem Laden prinzipiell angesprochen wurde. Das Laden kann man ggf. als Ressource durchführen:
Font font = Font.createFont(Font.TRUETYPE_FONT, getClass().getResourceAsStream("/media/fonts/LeagueGothic-Regular.ttf"));

Das wäre der Aufruf, wenn der src Ordner auf der Ressource Ordner ist (Also typisches Java Projekt in Eclipse oder Intellij). Wenn da Resources anders hinterlegt sind a.la. src/media ist ein Ressource Ordner, dann wäre das entsprechend anzupassen.
Der Pfad ist auf jeden Fall ab dem Ressource Ordner anzugeben - und man kann das Ausgabe-Verzeichnis prüfen (bin, out oder wo auch immer das Ergebnis der Übersetzung hin kopiert wird), wo die ttf Datei zu finden ist...
Danke nochmal für deine Hilfe! Es war tatsächlich einfach nur der Fall, dass der Text zu klein skaliert war! Nochmal danke, dass du mir so schnell weiterhelfen konntest!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N JLabel HTML mit custom Font AWT, Swing, JavaFX & SWT 0
M4cM4rco0707 JavaFX Custom-Komponente mit Custom-Controller AWT, Swing, JavaFX & SWT 3
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
F JavaFX Custom Exceptions AWT, Swing, JavaFX & SWT 5
Yjuq JavaFX Custom Control - Image resize AWT, Swing, JavaFX & SWT 0
D Gluon Scene Builder Custom AWT, Swing, JavaFX & SWT 0
B JavaFX Custom TextInputControl AWT, Swing, JavaFX & SWT 1
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
F JavaFX Custom ListView erstellt ghost Element AWT, Swing, JavaFX & SWT 3
X Custom Controls AWT, Swing, JavaFX & SWT 5
T JavaFX Custom Layout AWT, Swing, JavaFX & SWT 5
L JavaFX Custom control mit Hover Effekt AWT, Swing, JavaFX & SWT 2
M Swing JColorchooser anpassen - custom style? AWT, Swing, JavaFX & SWT 0
M JavaFX Parameter für Custom Control in FXML übergeben? AWT, Swing, JavaFX & SWT 4
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
P Verbuggte custom JButton unter Windows AWT, Swing, JavaFX & SWT 9
G TitledPane Custom Title AWT, Swing, JavaFX & SWT 6
N Custom JButton Feld aus Parent lesen lassen AWT, Swing, JavaFX & SWT 11
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
lumo SWT JFace Databinding +Custom Table AWT, Swing, JavaFX & SWT 2
B Swing JTable custom ColumnModel Problem AWT, Swing, JavaFX & SWT 5
W Swing Tag Oder Custom Eintrag AWT, Swing, JavaFX & SWT 7
algorismi Custom JDesktopIcon AWT, Swing, JavaFX & SWT 5
hdi Custom Cursor: Problem mit Größe AWT, Swing, JavaFX & SWT 5
N JComboBox mit Custom Object AWT, Swing, JavaFX & SWT 2
V Frage zu JScrollPane mit Custom Headern, mit Beispiel AWT, Swing, JavaFX & SWT 2
S [S] custom tree componente AWT, Swing, JavaFX & SWT 8
Z MessageDialog mit Custom panel erstellen AWT, Swing, JavaFX & SWT 2
0 Ist "sequence.fallback" aus den font.properties zur Laufzeit änderbar AWT, Swing, JavaFX & SWT 0
I Anderes (schlechteres) Font-Rendering in OpenJDK 8 AWT, Swing, JavaFX & SWT 21
L JavaFX Eigene Font benutzen AWT, Swing, JavaFX & SWT 6
B AWT Font Größenverhältnisse AWT, Swing, JavaFX & SWT 2
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
L Font für Dashboard AWT, Swing, JavaFX & SWT 3
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
S Swing JColorChooser Font ändern AWT, Swing, JavaFX & SWT 2
A AWT TTF-Datei zu Font-Objekt finden? AWT, Swing, JavaFX & SWT 5
Y Globale Font-Color definieren AWT, Swing, JavaFX & SWT 5
F java.awt.Font - ist das wirklich alles? AWT, Swing, JavaFX & SWT 3
Luk10 Ungewollte Unicode Characters im Font AWT, Swing, JavaFX & SWT 5
S Font laden, Wort zeichnen und animieren..? AWT, Swing, JavaFX & SWT 2
M Font Size in FormsEditor AWT, Swing, JavaFX & SWT 2
F Font in JTable setzen AWT, Swing, JavaFX & SWT 7
1 Font ändern AWT, Swing, JavaFX & SWT 5
I Textbreite von Font inklusive Tabs ermitteln AWT, Swing, JavaFX & SWT 4
T Swing Font für alle Komponenten ändern AWT, Swing, JavaFX & SWT 2
Dit_ Font durchgestrichen AWT, Swing, JavaFX & SWT 6
B Welche Font Family ist vorhanden? AWT, Swing, JavaFX & SWT 3
N Swing JEditorPane mit Farbe und Font AWT, Swing, JavaFX & SWT 2
G Frame,Font,Standard,Schriftart,JFrame AWT, Swing, JavaFX & SWT 3
M JSpinner Font ändern AWT, Swing, JavaFX & SWT 4
H anderes font in textarea AWT, Swing, JavaFX & SWT 2
Schandro Den größten passenden java.awt.Font zu einem Rectangle berechnen AWT, Swing, JavaFX & SWT 2
D Font laden AWT, Swing, JavaFX & SWT 2
T Font mit Border AWT, Swing, JavaFX & SWT 7
Fu3L Wie Schriftfarbe und Font global setzen? AWT, Swing, JavaFX & SWT 5
J Font Änderung nach Editorwechsel? AWT, Swing, JavaFX & SWT 3
A Font: Ist Schriftart überall verfügbar? AWT, Swing, JavaFX & SWT 4
I font-größe ermitteln AWT, Swing, JavaFX & SWT 4
S jTable Font einer Zelle ändern AWT, Swing, JavaFX & SWT 5
StephenKing Font-Größe in JTextField normalisieren AWT, Swing, JavaFX & SWT 6
DEvent Standard Font-Auswahl-Dialog? AWT, Swing, JavaFX & SWT 15
I GUI - Font und Labelklick AWT, Swing, JavaFX & SWT 6
S JTree - Renderer - Font AWT, Swing, JavaFX & SWT 3
R Schriftfarbe ändern in JTextArea / Font bekommen AWT, Swing, JavaFX & SWT 2
V Font setzen in JLabel AWT, Swing, JavaFX & SWT 6
M Schwieriges Label - Font - Problem "Dynamisches Label&a AWT, Swing, JavaFX & SWT 7
TheJavaKid font lässt sich bei der jtextarea nur einmal ändern AWT, Swing, JavaFX & SWT 3
G Font in JTextArea ändern AWT, Swing, JavaFX & SWT 2
I Font 2 Vektor AWT, Swing, JavaFX & SWT 3
V falscher Unicode font AWT, Swing, JavaFX & SWT 6
S Hilfe bei java.awt.Font AWT, Swing, JavaFX & SWT 7
H Create Font will nicht AWT, Swing, JavaFX & SWT 5
G Font tiefergestellt AWT, Swing, JavaFX & SWT 2
G Font nur für einen Teil String im JTextArea AWT, Swing, JavaFX & SWT 5
H Liste von Font Sizes und Colors AWT, Swing, JavaFX & SWT 4
D Font eines JLabels verändern, JLabel mit LookAndFeel-Format AWT, Swing, JavaFX & SWT 2
B Font fett setzen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben