Cuando realizamos un proyecto java utilizando fuentes de nuestro sistema, al momento de distribuir el programa y ejecutarlo en una PC que no tenga las mismas fuentes, nuestro programa se deforma al tomar el sistema fuentes propias de la pc cliente, para evitar esto podemos incluir nuestra fuente en el JAR de distribución o en un archivo externo, luego cargamos ya podemos cargar la fuente desde java y utilizarla en el proyecto.
Para este ejemplo utilizamos la fuente LISSA___.TTF de uso gratuito :), pueden hacer la prueba con cualquier otra fuente que pueden encontrar en la red.
Nos creamos una clase para cargar y personalizar esta fuente «CustomFont.java», la fuente TTF se encuentra en el mismo paquete que esta clase. Esta clase carga la fuente desde el constructor, ademas tiene una función para personalizar la fuente pasando como parámetros el estilo (Normal, Negrita, Italica) y el tamaño. Si la fuente no puede ser cargada, carga una fuente muy común en todos los sistemas la fuente tipo Arial.
import java.awt.Font; import java.io.InputStream; /** * @web https://www.jc-mouse.net * @author Mouse */ public class CustomFont { private Font font = null; public CustomFont() { String fontName = "LISSA___.ttf" ; try { //Se carga la fuente InputStream is = getClass().getResourceAsStream(fontName); font = Font.createFont(Font.TRUETYPE_FONT, is); } catch (Exception ex) { //Si existe un error se carga fuente por defecto ARIAL System.err.println(fontName + " No se cargo la fuente"); font = new Font("Arial", Font.PLAIN, 14); } } /* Font.PLAIN = 0 , Font.BOLD = 1 , Font.ITALIC = 2 * tamanio = float */ public Font MyFont( int estilo, float tamanio) { Font tfont = font.deriveFont(estilo, tamanio); return tfont; } }
Y para utilizar esta fuente desde cualquier clase, solo debemos instanciarla.
CustomFont cf = new CustomFont(); this.jLabel1.setFont(cf.MyFont(1, 28f)); this.jLabel1.setText("https://www.jc-mouse.net/"); this.jTextField1.setFont(cf.MyFont(1, 20f)); this.jTextField1.setText("Bolivia el mejor pais del mundo"); this.jTextArea1.setFont(cf.MyFont(0, 24f)); this.jTextArea1.setText("Aunque usted no lo crea. \n de Ripley");
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Cuando se hace uso de programas a veces no importa que este cree más de una instancia al mismo tiempo, por ejemplo podem...
En este post construiremos paso a paso un SharedPreferences más conocido en español como «Preferencias de Usuario«, esta...
En este tutorial aprenderemos a crear nuestra propia aplicación java para generar códigos QR. ¿Que es un Código QR? «Un...
La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, e...
En este post se da respuesta a una pregunta realizada por facebook. El problema dice así: Se quiere personalizar un JTab...
Cuando utilizamos aplicaciones web con conexión a base de datos MYSQL, se suele crear una clase que gestione la interacc...
Los comentarios estan cerrados
Sourcetrail el explorador de código fuente de los lenguaje C, C ++, Java y Python se pasa al Software Libre y desde ahor...
Tapiti v1.2.0 es un Software Educativo Gratuito multiplataforma para los sistemas operativos Windows y Linux el cual no...
En este post vemos un ejemplo de como convertir un archivo de imagen JPG en un archivo PDF utilizando para ellos la libr...
El modelo Tweetbotornot es un algoritmo de aprendizaje automático que se entrenó en miles de cuentas reales de bot y no...
Muchisimas gracias!