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

Escribir Applets


Métodos para Añadir Componentes UI

El código de dibujo del applet Simple (implementado en su método paint) no es bueno. No soporta scroll. Una vez que el texto alcanza el final del rectángulo de pantalla, no podemos ver ningún nuevo texto. Aquí tenemos un ejemplo del problema.

La cura más sencilla para este problema es usar un componconte prefabricado de interface de usuario que tenga el comportamiento correcto.

. Componentes UI Pre-Fabricados

El AWT suministra los siguientes componentes UI (las clases que implementan cada componente se listán entre paréntesis):

  • Botones (java.awt.Button)
  • Checkboxes (java.awt.Checkbox)
  • Campos de texto de una-línea (java.awt.TextField)
  • Grandes campos de texto y área de edición (java.awt.TextArea)
  • Etiquetas (java.awt.Label)
  • Listas (java.awt.List)
  • Listas desplegables de opciones (java.awt.Choice)
  • Deslizadores y Barras de Desplazamiento (java.awt.Scrollbar)
  • Áreas de Dibujo (java.awt.Canvas)
  • Menús (java.awt.Menu, java.awt.MenuItem, java.awt.CheckboxMenuItem)
  • Contenedores (java.awt.Panel, java.awt.Window y sus subclases)

. Métodos para Usar Componentes UI en Applets

Como la clase Applet desciende de la clase Container del AWT, es fácil añadir componentes a los applets y usar controladores de distribución para controlar la posición de los componentes en la pantalla. Aquí tenemos algunos métodos de Container que un applet puede usar:

add
Añade el Component especificado.
remove
Elimina el Component especificaco.
setLayout
Selecciona el controlador de distribución.

. Añadir un Campo de Texto no Editable al Applet Simple

Para hacer que el applet Simple use un campo de texto no editable y scrollable, podemos usar la clase TextField. Aquí está el código fuente revisado. Los cambios se muestran abajo:

//Importing java.awt.Graphics is no longer necessary
//since this applet no longer implements the paint method.
. . .
import java.awt.TextField;

    public class ScrollingSimple extends Applet {

    //Instead of using a StringBuffer, use a TextField:
    TextField field;

    public void init() {
        //Create the text field and make it uneditable.
        field = new TextField();
        field.setEditable(false);

	//Set the layout manager so that the text field will be
	//as wide as possible.
        setLayout(new java.awt.GridLayout(1,0));

	//Add the text field to the applet.
        add(field);
        validate();

        addItem("initializing... ");
    }

    . . .

    void addItem(String newWord) {
        //This used to append the string to the StringBuffer;
        //now it appends it to the TextField.
        String t = field.getText();
        System.out.println(newWord);
        field.setText(t + newWord);
        repaint();
    }

    //The paint method is no longer necessary,
    //since the TextField repaints itself automatically.

El métodoinit crea un campo de texto no editable (un ejemplar de TextField). Seleccionar el control de distribución del applet a uno hace el campo de texto tan ancho como sea posible y luego añade el campo de texto al applet.

Después de esto, el método init llama al método validate (que Applet hereda de Component). Llamar a validate después de haber añadido uno o más componentes a un applet es un poco de vudu que nos asegura que los Component se dibujarán a si mismos en la pantalla.

Abajo tenemos el applet resultante:

Pulsa sobre la imagen para ejecutar el applet...

 
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