Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
-Tutoriales

Gráficos con Java 2D


Crear y Derivar Fuentes

Podemos mostrar una cadena de texto con cualquier fuente disponible en nuestro sistema, en cualquier estilo y tamaño que elijamos. Para determinar las fuentes disponibles en nuestro sistema, podemos llamar al método GraphicsEnvironment.getAvailableFontFamilyNames. Este método devuelve un array de strings que contiene los nombres de familia de las fuentes disponibles. Se puede usar c ualquiera de las cadenas, junto con un argumento tamaño y otro de estilo, para crear un nuevo objeto Font. Después de crear un objeto Font, podemos cambiar su nombre de familia, su tamaño o su estilo para crear una fuente personalizada.

. Ejemplo: FontSelection

El siguiente applet nos permite cambiar la fuente, el tamaño y el estilo del texto dibujado.

Pulsa sobre la imagen para  ejecutar el applet.

Esta es una imagen del GUI del applet. Para ajecutar el applet, pulsa sobre ella. El applet aparecerá en una nueva ventana del navegador.

El código completo del applet está en FontSelection.java .

El método getAvailableFontFamilyNames de GraphicsEnvironment devuelve los nombres de familia de todas las fuentes disponibles en nuestro sistema.

GraphicsEnvironment gEnv =
    GraphicsEnvironment.getLocalGraphicsEnvironment();
String envfonts[] = gEnv.getAvailableFontFamilyNames();
Vector vector = new Vector();
for ( int i = 1; i < envfonts.length; i++ ) {
   vector.addElement(envfonts[i]);
}

El objeto Font inicial se crea con estilo Font.PLAIN y tamaño 10. Los otros estilos disponibles son ITALIC, BOLD y BOLD+ITALIC.

Font thisFont;
...
thisFont = new Font("Arial", Font.PLAIN, 10);

Un nuevo Font se crea a partir de un nombre de fuente, un estilo y un tamaño.

public void changeFont(String f, int st, String si){
  Integer newSize = new Integer(si);
  int size = newSize.intValue();
  thisFont = new Font(f, st, size);
  repaint();
}

Para usar la misma familia de fuentes, pero cambiando uno o los dos atributos de estilo y tamaño, podemos llamar a uno de los métodos deriveFont.

Para controlar la fuente utilizada para renderizar texto, podemos seleccionar el atributo font en el contexto Graphics2D antes de dibujarlo. Este atributo se selecciona pasando un objeto Font al método setFont. En este ejemplo, el atributo font se configura para usar un objeto font recientemente construido y luego se dibuja la cadena de texto en el centro del componente usando la fuente especificada.

En el método paint, el atributo font del contecto Graphics2D se configura como el nuevo Font. La cadena se dibuja en el centro del componente con la nueva fuente.

g2.setFont(thisFont);
String change = "Pick a font, size, and style to change me";
FontMetrics metrics = g2.getFontMetrics();
int width = metrics.stringWidth( change );
int height = metrics.getHeight();
g2.drawString( change, w/2-width/2, h/2-height/2 );
Nota:

Debido al bug # 4155852, FontSelection podría no funcionar de forma apropiada con todos los nombres de fuentes devueltos por la llamada a getFontFamilyNames. La forma podría no corresponder con cambios en el tamaño o el estilo y el texto podría no mostrarse cuando se selecionan algunos nombres de fuentes. En general, Courier y Helvetica funcionan bien. Mientras tanto, compruebalo periódicamente para ver si se han resuelto estos problemas.

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network