[icono]Manual de Java Volver a índice

Capítulo 12. Applets.


Los applets son pequeñas aplicaciones a la que se accede en un servidor de Internet, se transmiten a través de la red, se instalan automáticamente y se ejecutan como parte de un documento de la red.

Los applets, comienzan con dos líneas que importan los paquetes de Java.applet y Java.awt.(AWT es el equipo de herramientas de ventana abstracta)

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

Etiqueta de applet en HTML

La etiqueta se utiliza para iniciar un applet.

Sintaxis de la etiqueta


[< parama name=nombreatributo value = valoratributo >]
[< parama name=nombreatributo2 value = valoratributo
. . .
[Código HTML que se visualiza en ausencia de Java]

Paso de parámetros:

La etiqueta de applet HTML permite el paso de parámetros a los applets. Mediante el método:

  • getparameter (obtener parámetro) que devuelve un String (que se deberá convertir si se desea utilizar como otro tipo).

Forma de extraer cada parámetro:

String Nomtipo = getparameter("nomtipo") ;
int tamtipo = integer.parseint(getparameter("tamtipo")) ;
float precedente = float.valueof(getparameter("precedente") ;
boolean pagado = Boolean.valueof(getparameter("cuentahabilitada")) ;

getdocumentbase y getcodebase

Java permitirá que el applet cargue datos desde el directorio que contenía el archivo HTML que inicio el applet(base de documento) y el directorio desde el cual se cargo el archivo de la clase(base de código). Los métodos:

  • getdocumentbase (obtener base de documento) y getcodebase (obtener base de código) devuelven objetos URL que se pueden concatenar con una cadena que contenga el nombre de un archivo.

Appletcontext y Showdocument

  • Appletcontext (contexto de applet) es una interfaz que permite acceder a información del entorno de ejecución de el applet.
  • Showdocument(URL) (mostrar documento) envía la ventana del visualizador principal a un nuevo URL.
  • Showdocument(URL, destino) toma un URL al que ir y una cadena que representa el marco destino en el que debe aparecer el nuevo documento, las cadenas destino validas son:

    "_self" (mostrar en marco actual)
    "_parent" (en marco padre)
    "_top" (en el marco superior)
    "_blank" (en una nueva ventana de visualización)

    Ejemplo:

    Getappletcontext().showdocument(new URL (home, "archivo.html"),"_blank") ;

Orden de inicialización de los applets

  • init (inicializar) es primer método al que se llama, en el es donde se deberían inicializar las variables.
  • start (comenzar) se le llama como punto de partida después de que se haya detenido un applet y cada vez que se visualiza en pantalla un documento HTML.
  • Paint (pintar) se le llama cada vez que se daña el applet.
  • Update (actualizar) primero rellena un applet con su color en segundo plano y después llama a paint.
  • Stop (parar)se le llama cuando un visualizador de red abandona el documento HTML que contiene el applet.
  • Destroy (destruir)cuando el entorno determina que es necesario eliminar completamente el applet y liberar recursos.

Volver a pintar

  • repaint (repintar) obliga a que se vuelva a pintar el applet.

Variaciones:

  • repaint(tiempo) donde tiempo, representa un plazo máximo.
  • repaint(x, y, w, h) solo cambia las partes de la pantalla que caen dentro del rectángulo.
  • repaint(tiempo, x, y, w, h) Es una combinación de las dos.

Dimensionado de los gráficos

  • size (tamaño), devuelve un objeto Dimension (dimensión) en el cual se pueden referenciar las variables de instancia width (anchura) y height (altura). Ejemplo:

    dimension d=size()
    System.out.println(d.width + "," + d.height);

Métodos de gráficos simples

El objeto graphics tiene varias funciones simples de dibujo:

  • drawrect (rectángulo sin relleno)
  • drawoval (ovalo sin relleno)
  • fillrect (rectángulo con relleno)
  • filloval (ovalo con relleno)

    Se les llama con cuatro parámetros : intx, inty, int anchura e int altura.

    Ejemplo:

    dimension d=size();
    g.drawrect(0, 0, d.width-1, d.height-1);

  • drawline(x1, y1, x2, y2) (dibujar línea) dibuja una línea entre las coordenadas (x1, y1) y (x2, y2)

    Ejemplo:

    drawline(int x1, int y1, int x2, int y2)

  • drawarc(x, y, anchura, altura) (dibujar arco) dibuja un arco limitado por un rectángulo (x, y, anchura, altura) que comienza en angulocomienzo y recorre una distancia angular de angulobarrido.

    Ejemplo:

    drawarc(int x, int y, int anchura, int altura, int angulocomienzo, int aungulobarrido)

  • fillarc (rellenar arco) exactamente igual que el anterior, solo que rellena el arco creado.
    Drawpolygon (dibujar polígono) dibuja un polígono definido por dos matices, cada una con puntos x e y, y un numero que es el numero de pares de puntos (este método no cierra el polígono automáticamente).

    Ejemplo:

    drawpolygon(int[], int[], int)

  • Fillpolygon (rellenar polígono). Igual que el anterior, solo que rellena el polígono creado.

Color

Se pueden utilizar las variables estáticas de color para especificar varios colores habituales:

black(negro)
red(rojo)
green(verde)
blue(azul)
yellow(amarillo)
cyan
magenta
orange(naranja)
pink(rosa)
gray(gris)
drakgray(gris oscuro)
lightgray(gris claro)

Ejemplo:

color.black

Para crear un nuevo color se utiliza uno de los siguientes constructores de color:

  • color(int, int, int) Los enteros representan los niveles de rojo, verde y azul entre 0 y 255.
  • color(int) el nivel de rojo, verde y azul se ha empaquetado en el int de la siguiente manera:
    el rojo en los bits 16 al 23 el verde del 8 al 15 y el azul del 0 al 7.
  • color(float, float, float) los tres valores correspondientes a los tres colores, están entre 0.0 y 1.0.

Métodos de color

  • hsbtorgb(float, float, float) devuelve un RGB entero preparado para el constructor
  • color(int).
  • rgbtohsb(int, int, int) devuelve una matriz float de valores HSB que corresponde a enteros RGB.
  • getred(), getgreen(), getblue(). Obtienen los componentes de color rojo, verde y azul respectivamente.
  • getrgb() Obtiene un entero con los valores de rojo, verde y azul empaquetados.
  • Setpaintmode() modo por defecto para pintar, los pixeles se sobrescriben con el color actual.
  • Setxormode(color) alterna entre el color actual y el nuevo color especificado.
  • Drawstring(string, x, y) dibuja la cadena con el color y tipo de letra por defecto desde una coordenada x, y.

Utilización de los tipos de letra

El constructor de font, crea un nuevo tipo de letra con el nombre, estilo y tamaño especificado en puntos.

Ejemplo:

Font tipogrueso=new font("Helvetica", font.bold | font.italic, 24);

  • getfont (obtener tipo de letra de un objeto).
  • setfont (establecer tipo de letra de un objeto).
  • getfamily obtiene una cadena con el nombre de la familia de tipos de letra.
  • getname obtiene el nombre lógico de letra.
  • getsize devuelve el tamaño en puntos del font.
  • getstyle devuelve un entero que representa el estilo del font.
  • isbold, isitalic, isplain. devuelven un boolean que es true si el tipo de letra está en negrita, cursiva o normal, respectivamente.

Posicionamiento y tipos de letra

La clase fontmetrics (métrica de tipo de letra), permite visualizar texto con precisión.

Utilización de fontmetrics.

  • Stringwith devuelve la anchura del string.
  • Byteswitdh, charswidth devuelve la anchura de la matriz de bytes especificada con este tipo de letra del objeto gráfico.
  • Getascent, getdescent, getheight. obtienen el ascenso, descenso y la altura del tipo de letra.
    Donde:

    Altura: tamaño de arriba a abajo del carácter más alto del tipo de letra. Línea base: línea sobre la que están alineadas las partes inferiores de los caracteres Ascenso: distancia desde la línea base hasta la parte superior de un carácter. Descenso: distancia entre la línea base hasta la parte inferior de un carácter.

  • getmaxascent, getmaxdescent obtienen el ascenso y descenso de los bits dibujados, de todos los caracteres de este tipo de letra. Puede ser distinto del valor devuelto por getascent y getdescent ya que estos no incluyen los espacios en blanco.