Java Applet - Font aus datei laden

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
hi, wie ihr ja alle sicherlich wisst, kann man ja mit :
Java:
Font font = Font.createFont(Font.Font_Typ,File oder FileInputStream);
ein Font laden, genauer gesagt einen TrueTypeFont Datei, will ich verwenden.

Mein Problem :
das soll in einem Applet geschehen.

wie soll ich das bloß anstellen?

L-ectron-X lehrte mich einst, bei Applets, immer FileInputStreams zu verwenden, sei es beim laden von TextInhalten, aber nciht bei Bildern und Sounds, da gibt es ja schon Methoden, in der Klasse Applet.

Aufjedenfall, hatte er mir gesagt, wie wäre es, wenn ich es so versuchen würde:

[JAVA=33]
Font f = Font.createFont(Font.TRUETYPE_FONT, getClass().getResourceAsStream("Font.ttf"));
[/code]

Also meine Font Datei, die heißt Font.ttf(, und man kann sie auch bei Applikationen laden, aber anstatt des Inputstreams, einfach nur ein File, ) und befindet sich in meiner Jar, verpackt, ganz praktisch, kann aber darauf net zugegriffen werden
Code:
java.io.IOException: Problem reading font data.
	at java.awt.Font.createFont(Unknown Source)
	at JavaApplets.MainApplet.paint(MainApplet.java:33)
	at sun.awt.RepaintArea.paintComponent(Unknown Source)
	at sun.awt.RepaintArea.paint(Unknown Source)
	at sun.awt.windows.WComponentPeer.handleEvent(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.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)
java.io.IOException: Problem reading font data.
	at java.awt.Font.createFont(Unknown Source)
	at JavaApplets.MainApplet.paint(MainApplet.java:33)
	at sun.awt.RepaintArea.paintComponent(Unknown Source)
	at sun.awt.RepaintArea.paint(Unknown Source)
	at sun.awt.windows.WComponentPeer.handleEvent(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.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)

Hättet ihr ne Idee was ich machen könnte?
Den Font kann er lesen, ganz klar, wenns bei einer Applikation geht, gehts auch so, aber das finden, ich glabe das ist auch nicht der Punkt.

Er kann nicht die Font Datei lesen.
Er hat ein Problem dabei.

Aber was für eins?
Das beim finden?
Oder beim lesen der Datei?, aber warum beim Applet,`?

kann mir bitte jemand weiterhelfen, ich bedanke mich schon mal recht herrzlich,
Developer_X
 

faetzminator

Gesperrter Benutzer
Wo liegt die Font im jar? Nebenbei erwähnt sollten Packages immer nur aus Kleinbuchstaben bestehen (z.B. "ch.faetzminator.ircwaynebot" für das Projekt IRCwayneBot)
 

Developer_X

Top Contributor
ok, package, schreibe ich dann klein, ich weiß um ehrlich zu sein nciht genau wo die da drin ist, ich würde lieber meinem Applet sagen, es soll in dem Ordner nach dem Font suchen wo es selbst im Internet abgespeichert ist, ich habe die Font Datei dort nämlich

geht das?

PS:
Wenns nur in der Jar geht :
Ich benutzte dafür Eclipse, und habe jetzt einfach einen Rechtsklick auf mein Projekt gemacht und dann Paste, dann war die TrueTypeFont-Datei im verzeichnis, in dem Projekt.

Developer_X
 

faetzminator

Gesperrter Benutzer
Die hast du warscheinlich nicht beim Jar-Export mitgeliefert. Schau dir mal beim Erstellen des Jars alle inkludierten Dateien genau an (afaik Step 1 oder 2).
 

Developer_X

Top Contributor
selbst wenn ich das ganze bei mir in Eclipse starte, also das Applet, da gibts ja diese Funktion, gehts nicht, warum?

ich mache das mit dem Font laden so:
Java:
	//Font
		try
		{
			mainfont = Font.createFont(Font.TRUETYPE_FONT, getClass().getResourceAsStream("Font.ttf"));
			mainfont = mainfont.deriveFont(20f);
		}
		catch(Exception e)
		{
			e.printStackTrace();
			mainfont = new Font("Times New Roman",1,20);
		}
 

Developer_X

Top Contributor
um jetzt nich noch einen Extra Thread aufzumachen, kann mir jemand bei einem weiterem Problem helfen, bitte?

Ich weiß nicht ob ihr GradientPaint kennt. Wenn nicht, lest euch das mal in der API durch, das kann man mit Graphics2D verwenden, um Farbübergänge zu schaffen.

Als Parameter, kann man die 2 Punkte vom starten der Farbübergänge, bis zum Ende der Farbübergänge weitergeben, ebenso die 2 Farben, zwischen denen der Farbübergang stattfinden soll.

Desweiteren, habe ich eine Klasse, also mein Applet geschrieben, bei dem ich die 2 Punkte gern stets in bewegung halten wollte, sodass es aussieht als ob sich die Lichtquelle ( weil ich Color.black und Color.white verwende ) vor dem Bildschirm bewegt.

Dies klappt aber leider nicht, weshalb?
Java:
package JavaApplets;

import java.applet.*;
import java.awt.*;

@SuppressWarnings("serial")
public class MainApplet extends Applet implements Runnable
{
	//Attributes
		//Applet Size
			Dimension d; 
		//MainFont
			Font mainfont;
		//floats
			float A_x;
			float A_y;
			float B_x;
			float B_y;
		//booleans
			boolean upA;
			boolean downA;
			boolean leftA;
			boolean rightA;
			
			boolean upB;
			boolean downB;
			boolean leftB;
			boolean rightB;
		//GradientPaint
			GradientPaint gp;
			
	public void delete()
	{	
	}
	public void init()
	{
		initAttributes();
	}
	public void start()
	{		
		//Start Thread
			Thread thread = new Thread(this);
			thread.start();
		
	}
	@Override
	public void paint(Graphics g)
	{
		g.setFont(mainfont);
		
		((Graphics2D) g).setPaint(gp);	
		g.fillRect(0,0,d.width,d.height);
		
		g.setColor(Color.red);
		g.drawString("Diese Seite ist in Arbeit", d.width/3 , d.height/3);
	}
	
	//implemented Methods
	public void run()
	{
		while(true)
		{
			moveLights();
						
			repaint();
			try
			{
				Thread.sleep(100);
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
		}
	}
	//unimplemented Methods
	public void initAttributes()
	{
	//Explain the Dimension
		d = this.getSize();
	//Font
		try
		{
			mainfont = Font.createFont(Font.TRUETYPE_FONT, getClass().getResourceAsStream("Font.ttf"));
			mainfont = mainfont.deriveFont(20f);
		}
		catch(Exception e)
		{
			mainfont = new Font("Times New Roman",1,20);
		}
	//floats
		A_x = d.width/2;
		A_y = 0;
		
		B_x = d.width/2;
		B_y = d.height;
	//boolean	
		upA = true;
		upB = false;
		
		downA = false;
		downB = true;
		
		leftA = true;
		leftB = false;
		
		rightA = false;
		rightB = true;
	//GradientPaint
		gp = new GradientPaint(A_x, A_y, Color.black, B_x, B_y, Color.white);
	}
	
	public void moveLights()
	{
		if(upA)
		{
			if(A_y<=d.height)
			{
				A_y+= 0.01f;
			}
			else
			{
				upA = false;
				downA = true;
			}
		}
		if(downA)
		{
			if(A_y>=0)
			{
				A_y-= 0.1f;
			}
			else
			{
				downA = false;
				upA = true;
			}
		}
		if(rightA)
		{
			if(A_x<=d.height)
			{
				A_x+= 0.01f;
			}
			else
			{
				rightA = false;
				leftA = true;
			}
		}
		if(leftA)
		{
			if(A_x<=d.height)
			{
				A_x-= 0.01f;
			}
			else
			{
				leftA = false;
				rightA = true;
			}
		}
		if(upB)
		{
			if(B_y<=d.height)
			{
				B_y+= 0.01f;
			}
			else
			{
				upB = false;
				downB = true;
			}
		}
		if(downB)
		{
			if(B_y>=0)
			{
				B_y-= 0.1f;
			}
			else
			{
				downB = false;
				upB = true;
			}
		}
		if(rightB)
		{
			if(B_x<=d.height)
			{
				B_x+= 0.01f;
			}
			else
			{
				rightB = false;
				leftB = true;
			}
		}
		if(leftB)
		{
			if(B_x<=d.height)
			{
				B_x-= 0.01f;
			}
			else
			{
				leftB = false;
				rightB = true;
			}
		}
		gp = new GradientPaint(A_x, A_y, Color.black, B_x, B_y, Color.white);
	}
}
 

faetzminator

Gesperrter Benutzer
Die Ordnerstruktur deines Projektes wär noch hilfreich, warscheinlich musst du die Datei mit "../fonts/Font.ttf" oä laden.
 

faetzminator

Gesperrter Benutzer
na dann machs in Eclipse mal mit [c]"../Font.ttf"[/c], da ist doch [c].[/c] das (hier nicht sichtbare) bin/ Verzeichnis. Also zuerst mit einem [c]..[/c] ein Level zurück
 

Developer_X

Top Contributor
dann passiert das hier :
Code:
java.io.IOException: Problem reading font data.
	at java.awt.Font.createFont(Unknown Source)
	at JavaApplets.MainApplet.initAttributes(MainApplet.java:84)
	at JavaApplets.MainApplet.init(MainApplet.java:37)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
 

Developer_X

Top Contributor
ich habe zu meinem 2ten Problem schon eine Antwort gefunden, der balken bewegt sich, aber sehr, sehr langsam, deswegen habe ich die Sachen verschnellert, dass das ganze auch mit dem bloßen Auge zu sehen ist.

Ein problem habe ich da aber noch:
das ganze flimmert, wie kann ich das bild neuzeichnen, und zwar ohne flimmern?
Siehe Quelltext Oben
 

Developer_X

Top Contributor
Da hast du den Pfad ersetzt? Also ich würds mit "/Font.ttf", "Font.ttf" und "../Font.ttf" versuchen...

alle 3 möglichkeiten habe ich schon einmal eingesetzt, leider ohne Erfolg, bitte schau dir den Quellcode richtig an, besonders die Methode "initAttributes()"
darin wird der Font nämlich geladen, sag mir, was würdest du nehmen, in einem Applet?, einen InputStream, oder einen File?
 

Developer_X

Top Contributor
hey, ich habe mal zum spaß die neueste Jar, die leider nicht auf meinem PC funktioniert hat, mal im Internet abgespeichert, mit meinem neuen FTP Programm, und siehe da, es funktioniert!

Rayman-2-TGE
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java Applet Verknüpfungsproblem Allgemeine Java-Themen 6
T Java Applet Berechtigungen Allgemeine Java-Themen 2
T 2D-Grafik Java Applet Rechtecke und Kreise Allgemeine Java-Themen 1
I Java Applet wird immer blockiert Allgemeine Java-Themen 3
S Java Applet wird dauerhaft blockiert Allgemeine Java-Themen 1
T Java applet args Allgemeine Java-Themen 5
S Java Applet Crash - Keine Exception Allgemeine Java-Themen 8
L Java Applet - ClassNotFound online, offline korrekt Allgemeine Java-Themen 13
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
T Java Applet in IE 8+9 Allgemeine Java-Themen 4
P Applet java 1.7 in Website einbinden ? Allgemeine Java-Themen 7
U Wie kann mit einen Java Applet Dateien erstellen,verschieben und löschen? Allgemeine Java-Themen 9
D JAVA Applet MVC? Allgemeine Java-Themen 2
T Java Application zu Applet Allgemeine Java-Themen 4
G Input/Output java applet schreibrechte Allgemeine Java-Themen 8
G java applet und com-port Allgemeine Java-Themen 7
W Java Applet läuft langsam Allgemeine Java-Themen 2
J Applet zum .java-Dateien auslesen/erstellen Allgemeine Java-Themen 5
S Applet in Java NetBeans Allgemeine Java-Themen 3
H Applet java.lang.reflect.InvocationTargetException Allgemeine Java-Themen 9
N Java Applet im eingeschränkten Benutzeraccount Allgemeine Java-Themen 10
L Problem mit Hintergrund bei JAVA Applet Allgemeine Java-Themen 27
W Applet notinited nach Java Versionsupdate Allgemeine Java-Themen 12
B Java Applet unter Mac wird nicht angezeigt Allgemeine Java-Themen 6
G Java Applet für VPN Allgemeine Java-Themen 2
C Externe Bilder in Java-Applet blocken? Allgemeine Java-Themen 2
F Java Print mit Applet einbinden Allgemeine Java-Themen 2
J Seltsame Exception beim Java Applet einbinden in Html Allgemeine Java-Themen 2
T Java Applet PDF erstellen mit iText, Probleme mit Pfad Allgemeine Java-Themen 1
G weiteres Java Programm vom Applet aus starten? Allgemeine Java-Themen 9
M Java applet zusammen mit DHTML z-index Problem Allgemeine Java-Themen 2
P Java-Applet funktioniert nicht in HTML-Seite Allgemeine Java-Themen 3
H Java Applet Diagramm (Chart) Allgemeine Java-Themen 11
S Java Applet Gästebuch Allgemeine Java-Themen 1
G Java-Applet bzw. Browser schließen Allgemeine Java-Themen 3
T Java-Applet auf Doppelklick reagieren lassen Allgemeine Java-Themen 2
P Java Applet Allgemeine Java-Themen 6
H Applet - java.security.AccessControlException: access. Allgemeine Java-Themen 6
G java applet mit swing -> hundert prozent cpu auslastung Allgemeine Java-Themen 11
H Java/applet?/Xport/LED`s ansteuern Allgemeine Java-Themen 4
T Text aus Java-Applet kopieren. Allgemeine Java-Themen 14
G java! Problem mit Chat-Applet Allgemeine Java-Themen 3
J Java-Applet funktioniert nur als Administrator Allgemeine Java-Themen 6
S Java Applet im Browser laden Allgemeine Java-Themen 2
D Java Applet aus fertigem Programm Allgemeine Java-Themen 2
W Kleines Applet in Standard Java Applikation umwandeln Allgemeine Java-Themen 3
S Java Applet: digitales Schachbrett Allgemeine Java-Themen 7
A Die Java-Version des Clients in einem Java-Applet ermitteln Allgemeine Java-Themen 2
R Java Applet in Java Programm wandeln Allgemeine Java-Themen 4
G Wenn JAVA Applet nicht geladen werden kann -> Flash Allgemeine Java-Themen 4
F IE-Applet vs. Java Web Start Allgemeine Java-Themen 5
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben