Hey wie bereits beschrieben habe ich im src Ordner meines Netbeans PRJ einen Ordner Fonts/Hitman.ttf mit einer gängigen True Type Font.
mit follgender Deklaration wird mir die Schrift auch so wie soll angezeigt:
Da ich diesen COde an vielen Stellen benötige dachte ich mir extrahiere ich dass und erstelle mir dafür eine externe klasse mit einer static Methode um sie wiederverwendbar zu halten diese Klasse sieht so aus:
wenn ich nun Allerdings einem anderen Label über die Klasse versuche eine schrift zu zu weißen gelingt dies nicht:
Obwohl es doch eigentlich genau auf das gleiche rausläuft oder täusche ich mich?
Wenn ich die Jar via Konsole starte spuckt das System.out.println() das ich zum Testen in meiner createFonts Klasse geschrieben habe einen Error. Ohne diese bekomme ich überhaupt keinen Error es wird nur die normale schrift angezegit. Sprich er findet die .ttf datei so nicht. Jemand eine Erklärung wieso?
mit follgender Deklaration wird mir die Schrift auch so wie soll angezeigt:
Java:
String resource=getClass().getResource("/Fonts/Hitman.ttf").getFile();
jLabel1.setFont(Font.createFont(Font.TRUETYPE_FONT,new File(resource)).deriveFont(Font.PLAIN, 36));
Da ich diesen COde an vielen Stellen benötige dachte ich mir extrahiere ich dass und erstelle mir dafür eine externe klasse mit einer static Methode um sie wiederverwendbar zu halten diese Klasse sieht so aus:
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jtask;
import java.awt.Font;
import java.awt.FontFormatException;
import java.io.File;
import java.io.IOException;
/**
*
* @author QueAnw
*/
public class CreateFonts {
public static Font createFont(String path,Class finder){
/*Path ausgehend vom Root Ordner des Projekts*/
Font result=null;
try {
String resource=finder.getResource(path).getFile();
result=Font.createFont(Font.TRUETYPE_FONT,new File(resource)).deriveFont(Font.PLAIN, 36);
} catch (FontFormatException ex) {
} catch (IOException ex) {
}
[B]System.out.println(result.getFamily());[/B]
return result;
}
}
wenn ich nun Allerdings einem anderen Label über die Klasse versuche eine schrift zu zu weißen gelingt dies nicht:
Java:
jLabel1.setFont(jtask.CreateFonts.createFont("/Fonts/Hitman.ttf",this.getClass()));
Obwohl es doch eigentlich genau auf das gleiche rausläuft oder täusche ich mich?
Wenn ich die Jar via Konsole starte spuckt das System.out.println() das ich zum Testen in meiner createFonts Klasse geschrieben habe einen Error. Ohne diese bekomme ich überhaupt keinen Error es wird nur die normale schrift angezegit. Sprich er findet die .ttf datei so nicht. Jemand eine Erklärung wieso?
Java:
F:\Coding\oWn_proggs\Java\JTask\JTask\dist>java -jar JTask.jar
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at jtask.CreateFonts.createFont(CreateFonts.java:30)
at jtask.GUI.Register.initSettings(Register.java:279)
at jtask.GUI.Register.<init>(Register.java:26)
at jtask.Main.shoRegister(Main.java:51)
at jtask.GUI.Login.jLabel4MouseClicked(Login.java:165)
at jtask.GUI.Login.access$500(Login.java:26)
at jtask.GUI.Login$6.mouseClicked(Login.java:120)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)