Gráficos con Java 2D

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.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO