Wie importierst du eine Schrift?

Ich frage mich, wie Sie eine Schrift importieren würden.

Ich versuche, eine benutzerdefinierte heruntergeladene Schriftart zu verwenden, aber da die meisten Computer, die ausgeführt werden würden, diese Schriftart nicht haben, da es keine Standardschriftart ist. Wie würde ich die Schrift arbeiten lassen, obwohl sie nicht die Schriftart hat?

Ich benutze es für einen Gameover-Bildschirm und muss eine Punktzahl damit anzeigen und möchte, dass der Score-Text dieselbe Schriftart ist. Das ist das Bild,

Bildbeschreibung hier eingeben

Wenn es wichtig ist, ist der Name der Schriftart auf meinem Computer Terminal

Edit: Ich nehme an, es müsste die Schriftart im Verzeichnis der Java-Datei haben und es wäre eine Möglichkeit, das zu verwenden, aber ich bin mir nicht sicher, wie. Oder gibt es einen besseren Weg?

Edit2: Ich habe ein nettes Tutorial gefunden, wie es geht, brauche aber Hilfe, wie ich das benutze … klick mich für den Link

Edit3:

 URL fontUrl = new URL("http://www.webpagepublicity.com/" + "free-fonts/a/Airacobra%20Condensed.ttf"); Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream()); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); ge.registerFont(font); g.setFont(font); 

Fehlermeldung

 File: F:\Computer Science\draw.java [line: 252] Error: F:\Computer Science\draw.java:252: font is not public in java.awt.Component; cannot be accessed from outside package 

Hier ist was ich versuche:

 URL fontUrl = new URL("http://img.dafont.com/dl/?f=badaboom_bb"); Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream()); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); ge.registerFont(font); g.setFont(font); 

Bearbeiten4:

 File fontfile = new File("TexasLED.ttf"); File.toURI(fontfile).toURL(fontfile); URL fontUrl = new URL("fontfile"); 

Error

 Error: F:\Computer Science\draw.java:250: toURI() in java.io.File cannot be applied to (java.io.File) 

‘Airacobra Condensed’ Schriftart zum kostenlosen Download .

Registrierte Schrift

 import java.awt.*; import javax.swing.*; import java.net.URL; class LoadFont { public static void main(String[] args) throws Exception { // This font is < 35Kb. URL fontUrl = new URL("http://www.webpagepublicity.com/" + "free-fonts/a/Airacobra%20Condensed.ttf"); Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream()); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); ge.registerFont(font); JList fonts = new JList( ge.getAvailableFontFamilyNames() ); JOptionPane.showMessageDialog(null, new JScrollPane(fonts)); } } 

OK, das hat Spaß gemacht, aber wie sieht diese Schrift eigentlich aus?

Schriftart anzeigen

 import java.awt.*; import javax.swing.*; import java.net.URL; class DisplayFont { public static void main(String[] args) throws Exception { URL fontUrl = new URL("http://www.webpagepublicity.com/" + "free-fonts/a/Airacobra%20Condensed.ttf"); Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream()); font = font.deriveFont(Font.PLAIN,20); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); ge.registerFont(font); JLabel l = new JLabel( "The quick brown fox jumps over the lazy dog. 0123456789"); l.setFont(font); JOptionPane.showMessageDialog(null, l); } } 

Sie können GraphicsEnvironment.registerFont

http://docs.oracle.com/javase/6/docs/api/java/awt/GraphicsEnvironment.html#registerFont(java.awt.Font )

Mit diesem können Sie eine Schriftart aus einer .ttf-Datei laden:

 private static final Font SERIF_FONT = new Font("serif", Font.PLAIN, 24); private static Font getFont(String name) { Font font = null; if (name == null) { return SERIF_FONT; } try { // load from a cache map, if exists if (fonts != null && (font = fonts.get(name)) != null) { return font; } String fName = Params.get().getFontPath() + name; File fontFile = new File(fName); font = Font.createFont(Font.TRUETYPE_FONT, fontFile); GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment(); ge.registerFont(font); fonts.put(name, font); } catch (Exception ex) { log.info(name + " not loaded. Using serif font."); font = SERIF_FONT; } return font; } 

Ich habe mein eigenes Problem getriggers. Ich habe es getan

 URL fontUrl = new URL("file:///F:/Computer_Science/TexasLED.ttf"); 

Das zeigt auf die Schrift und funktioniert für mich!

Sie können auch fonts verwenden, die in Ihrer Anwendungs-JAR-Datei eingebettet sind. Ich habe diese function seit vielen Jahren verwendet, um Schriften in meine Projekte zu laden.

 public Font getFont(String fileName) throws Exception { String path = "/xyz/isururanawaka/wb/fonts/" + fileName; URL url = getClass().getResource(path); return Font.createFont(Font.TRUETYPE_FONT, new File(url.toURI())); }