2011-04-14 19 views
6

Voy a utilizar una fuente personalizada en mi aplicación. Para eso estoy usando el método Font.createFont(). Mi código se proporciona a continuación. Funciona bien cuando corro mi clase de comandos principal usandoAccediendo a la fuente personalizada desde Jar

java myAppl.class

El archivo de fuentes está en mismo directorio que el de mi archivo de clase. Pero cuando incluí todos los archivos y archivos de fuentes en JAR y luego ejecuté mi aplicación desde JAR, la fuente personalizada no se carga. ¿Por qué?

InputStream is = this.getClass().getResourceAsStream("myfont.TTF"); 
uniFont=Font.createFont(Font.TRUETYPE_FONT,is); 
Font f = uniFont.deriveFont(24f); 

¿Qué debo hacer?

+2

¿La ruta de la fuente es correcta y no es algo como resources/fonts/myfont.TTF en el archivo jar? También asegúrese de que la caja sea correcta. – lobster1234

Respuesta

0

intente copiar la fuente a la carpeta jre/lib/font

o utilice un nombre calificado por paquete ("com.mypackagename.myfont.TTF")

4
  1. Asegúrese de que el caso de la La extensión del nombre de archivo de fuente & es exactamente la misma en el código que en el sistema de archivos. Windows puede no ser sensible a mayúsculas y minúsculas, pero Java sí.
  2. Compruebe el InputStream devuelto por getResourceAsStream() para null. Si es null, eso indica que no se localizaron los recursos.
  3. Ponga la fuente en la raíz de la Jarra y agregue "/" como prefijo al nombre.
1

Como respuesta Andrew, he probado exactamente el código de seguridad y obras:

InputStream is = this.getClass().getResourceAsStream("/myfont.TTF"); 
uniFont=Font.createFont(Font.TRUETYPE_FONT,is); 

Solo faltaba "/" antes del nombre de archivo. Nota: paquete jar por Netbeans

Cuestiones relacionadas