Extrahieren in Externe Klasse Funktioniert nicht

xX_QueAnw_Xx

Mitglied
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:
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)
 

Michael...

Top Contributor
Wo liegt denn die Datei beim Ausführen des jars?

Warum übergibt's Du der Methode eine Klasse und welche wird da überhaupt übergeben?
Warum nicht:
Java:
CreateFonts.class.getResource("/Fonts/Hitman.ttf").getFile();
Wobei ich mir nicht sicher bin, ob das so überhaupt Sinn macht.
 

xX_QueAnw_Xx

Mitglied
Also beim normalen ausführen (Run) in Netbeans funktioniert das ganze Wunderbar.

Nur wenn ich daraus eine Jar mache gibts einen Error den Error lasse ich jetz in meinen Error dialog ausgeben:

Java:
       try {
            String resource=finder.getResource(path).getFile();
            result=Font.createFont(Font.TRUETYPE_FONT,new File(resource)).deriveFont(Font.PLAIN, 36);
        } catch (FontFormatException ex) {
            Main.FontError(ex);
        } catch (IOException ex) {
            Main.FontError(ex);
        }

Ausgabe:
Code:
Es gab einen Fehler beim einbinden einer Externen Schrift
Can't read file:\I:\Coding\oWn_proggs\Java\JTask\JTask\dist\JTask.jar!\Fonts\Hitman.ttf

Allerdings liegt die Datei auch wieder in: I:\Coding\oWn_proggs\Java\JTask\JTask\dist\JTask.jar\Fonts\Hitman.ttf


Das Problem könnte sein das am Anfang des Strings file:\ steht oder?


€Dit:
Java:
String resource=finder.getResource(path).getFile();
            if (resource.contains("file:"))
               System.out.println("True");

Hat aufjedenfall mal auf der Konsole true ausgegeben, beim ausführen der Jar Via Konsole!


€Dit2: Ok so schmeißt er jetzt auch ne Exception:
Java:
       try {
            String resource=getClass().getResource("/Fonts/Hitman.ttf").getFile();
            jLabel1.setFont(Font.createFont(Font.TRUETYPE_FONT,new File(resource)).deriveFont(Font.PLAIN, 36));
        } catch (FontFormatException ex) {
            Main.FontError(ex);
        } catch (IOException ex) {
            Main.FontError(ex);
        }

:
Code:
Es gab einen Fehler beim einbinden einer Externen Schrift
Can't read file:\I:\Coding\oWn_proggs\Java\JTask\JTask\dist\JTask.jar!\Fonts\Hitman.ttf
 
Zuletzt bearbeitet:

Michael...

Top Contributor
In einem jar gibt es keine Dateien im eigentlichen Sinne, daher wird getFile() immer null liefern.
Aber man kann solche Einträge z.B. mit getResourceAsStream(...) auslesen und damit einen Font erzeugen.
 

xX_QueAnw_Xx

Mitglied
Vielen Dank an dich Michael.

Die neue CreateFonts Klasse:
€Dit: Die verbesserte Form:
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.IOException;
import java.util.HashMap;


/**
 *
 * @author bjoern
 */
public class CreateFonts {
    private static HashMap<String, Font> fonts = new HashMap<String, Font>();

    public static Font createFont(String title,String path,int size){
       /*Erstellen eines Default Rückgabe Wertes und Schriftname aus titel und größe*/
       Font result=null;
       String name=title.concat(String.valueOf(size));
       
       if(fonts.containsKey(name))
           return fonts.get(name);
       else{
        try {
            result=Font.createFont(Font.TRUETYPE_FONT,CreateFonts.class.getResourceAsStream(path)).deriveFont(Font.PLAIN, size);
            fonts.put(name, result);
        } catch (FontFormatException ex) {
            Main.FontError(ex);
        } catch (IOException ex) {
            Main.FontError(ex);
        }
        return result;
       }

    }

}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
H nio Pfad aus Dateinamen extrahieren Java Basics - Anfänger-Themen 4
J Zahlen extrahieren Java Basics - Anfänger-Themen 1
C Datentypen Zeile aus mehrdimensionalem Array extrahieren uns abspeichern Java Basics - Anfänger-Themen 6
A Eindeutige Elemente aus Array extrahieren Java Basics - Anfänger-Themen 9
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
L String extrahieren mit Regular Expression über mehrere Zeilen hinweg Java Basics - Anfänger-Themen 1
V Teilstring extrahieren Java Basics - Anfänger-Themen 9
S Jar-Datei extrahieren ? Java Basics - Anfänger-Themen 10
S Teilstücke aus einer Grafik extrahieren Java Basics - Anfänger-Themen 2
M Metadaten mit Tika extrahieren Java Basics - Anfänger-Themen 2
D In String suchen und extrahieren Java Basics - Anfänger-Themen 13
E JFormattedTextField Zahl extrahieren - warum Number und nicht Double? Java Basics - Anfänger-Themen 4
0 Alle URLs aus einer Zeile extrahieren? Java Basics - Anfänger-Themen 6
C Anzahl der Sekunden aus Uhrzeit extrahieren Java Basics - Anfänger-Themen 6
MilchToast Teilstrings aus unbekannt großen Textdateien extrahieren. Java Basics - Anfänger-Themen 5
S Dateiname extrahieren Java Basics - Anfänger-Themen 2
M aus String extrahieren bis zu gewissem Zeichen Java Basics - Anfänger-Themen 7
G Klassennamen extrahieren Java Basics - Anfänger-Themen 2
B String[] alphabetisch extrahieren Java Basics - Anfänger-Themen 11
T Teilstring aus einer Datei extrahieren und ausgeben Java Basics - Anfänger-Themen 5
G Mittels RegExp "Variablen" extrahieren Java Basics - Anfänger-Themen 4
W worte aus Textdatei extrahieren ? Java Basics - Anfänger-Themen 4
T Namen und RGB Wert extrahieren? Java Basics - Anfänger-Themen 2
F Zahl aus String (Buchstaben und Zahl) extrahieren Java Basics - Anfänger-Themen 17
M Verzeichnisname extrahieren Java Basics - Anfänger-Themen 3
C Werte aus Schleife in eine andere Methode extrahieren Java Basics - Anfänger-Themen 10
S Bilder aus Webseiten extrahieren Java Basics - Anfänger-Themen 2
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
C externe jar einbinden in Eclipse-Projekt Java Basics - Anfänger-Themen 2
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
S Maven und externe Library Java Basics - Anfänger-Themen 2
tom.j85 Externe Rest API konsumieren Java Basics - Anfänger-Themen 9
L Worauf muss ich achten, wenn ich externe Bibliotheken für meine Anwendungen verwende? Java Basics - Anfänger-Themen 6
W Externe class in Eclipse importieren Java Basics - Anfänger-Themen 0
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
Hijo2006 Neue externe Klasse einbinden Java Basics - Anfänger-Themen 13
S Klassen Externe Klasse in ein Projekt mit einbinden Java Basics - Anfänger-Themen 7
T Externe Methoden aufrufen Java Basics - Anfänger-Themen 3
M Externe .jar in Sublime einbinden Java Basics - Anfänger-Themen 5
E Externe Library .zip Datei importieren Java Basics - Anfänger-Themen 3
D Externe Comperator-Klasse Java Basics - Anfänger-Themen 3
D Externe Eeite beim Mousover anzeigen Java Basics - Anfänger-Themen 0
U Externe Library im non runnable jar File im eclipse Java Basics - Anfänger-Themen 1
S externe Datei erstellen, oeffnen, bearbeiten Java Basics - Anfänger-Themen 2
S komponente über externe klasse zufügen Java Basics - Anfänger-Themen 13
D Externe Libs in Jar Java Basics - Anfänger-Themen 2
S externe Webseiten füllen Java Basics - Anfänger-Themen 5
H Classpath java.lang.NoClassDefFoundError externe Libary Java Basics - Anfänger-Themen 4
M externe JARs in die eigene JAR einbinden Java Basics - Anfänger-Themen 9
T Sichtbarkeiten und externe Klasse Java Basics - Anfänger-Themen 33
N Jar-File soll externe class-Datei benutzen Java Basics - Anfänger-Themen 8
S Externe Bibliothek zu Resources hinzufügen? Java Basics - Anfänger-Themen 5
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
V Input/Output Plattform unabhängig auf externe Dateien zugreifen Java Basics - Anfänger-Themen 4
P Threads Thread und Zugriff auf externe Methode beenden Java Basics - Anfänger-Themen 4
N Klassen externe .class einbinden Java Basics - Anfänger-Themen 9
F Input/Output Wie externe Datei NICHT mit dem Standardprogramm öffnen? Java Basics - Anfänger-Themen 3
J Zugriff von main-Klasse auf externe Klassen Java Basics - Anfänger-Themen 51
T externe Datei fest an Projekt binden Java Basics - Anfänger-Themen 2
K Klassen externe JAR in Programm einbinden Java Basics - Anfänger-Themen 5
E externe .txt Datei mit Scanner einlesen Java Basics - Anfänger-Themen 7
Steve5000 Externe Batch-Datei starten und anwendung beenden?! Java Basics - Anfänger-Themen 4
L Externe Dateien, wohin? Java Basics - Anfänger-Themen 7
C OOP Externe Klasse erweitern (ohne Vererbung!!) Java Basics - Anfänger-Themen 8
T externe Programme pipen Java Basics - Anfänger-Themen 2
G Eigene Klasse für externe Befehle - Warten auf Prozesse Java Basics - Anfänger-Themen 6
P Externe IP ermitteln? Java Basics - Anfänger-Themen 5
-horn- Externe Lib: JavaSCI richtig einbinden? Java Basics - Anfänger-Themen 5
I externe JAVA-Schnittstelle einbinden Java Basics - Anfänger-Themen 2
A Externe Klassen Laden und ausführen Java Basics - Anfänger-Themen 12
P externe JARs integrieren Java Basics - Anfänger-Themen 9
Y Applet lokal executable machen, externe Files inkludieren Java Basics - Anfänger-Themen 8
C externe Klassen in Projekt einbinden Java Basics - Anfänger-Themen 10
I Listenerklassen in externe Dateien auslagern? Java Basics - Anfänger-Themen 7
G Intern auf externe IP zugreifen? Java Basics - Anfänger-Themen 7
S externe Klassen Java Basics - Anfänger-Themen 3
M Parameterübergabe an externe JAR-Datei? Java Basics - Anfänger-Themen 2
Schandro Externe Bibliothek OHNE IDE benutzen Java Basics - Anfänger-Themen 5
B Externe .exe-Dateien starten +Runtime Java Basics - Anfänger-Themen 6
W Kann in meiner Jar nicht auf externe Jar zugreifen Java Basics - Anfänger-Themen 4
G zugriff auf festplatte / externe festplatten Java Basics - Anfänger-Themen 12
T Externe Datei aufrufen Java Basics - Anfänger-Themen 6
T Externe JAR datei in eigene? Java Basics - Anfänger-Themen 2
S externe Datei unformatiert einlesen & in double konverti Java Basics - Anfänger-Themen 2
B Paint(Component) und externe Objekte Java Basics - Anfänger-Themen 6
S per Kommandozeile compilieren: Problem: externe Jars einbind Java Basics - Anfänger-Themen 16
D Externe .jar in Eclipse nutzen Java Basics - Anfänger-Themen 3
F Externe Batch Datei aufrufen Java Basics - Anfänger-Themen 5
G Auf externe Resourceb zugreifen Java Basics - Anfänger-Themen 6
S externe URL öffnen und in Variable speichern. Java Basics - Anfänger-Themen 9
L Externe *.jar verwenden (ohne IDE) Java Basics - Anfänger-Themen 9
G JAR: Externe Dateien zur Laufzeit aufrufen Java Basics - Anfänger-Themen 12
I Wie eine externe Funktion rufen? Java Basics - Anfänger-Themen 11
G Externe Klassen mit ausliefern Java Basics - Anfänger-Themen 4
J Anfängerfrage: wie externe Dateien importieren? Java Basics - Anfänger-Themen 5
F Externe Datei aufrufen Java Basics - Anfänger-Themen 3
B Pfad für eine externe Klasse Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben