Uso del  bean

prev.gif (997 bytes)chapter.gif (1105 bytes)home.gif (1232 bytes)next.gif (1211 bytes)

JavaBeans

La paleta de componentes

El uso del bean

La respuesta a la acción del usuario sobre el botón

El código fuente


La paleta de componentes

Para usar el bean lo primero que tenemos que hacer es situarlo en la paleta de componentes. La paleta de componentes tiene un conjunto de pestañas, que agrupan controles del mismo tipo o del mismo fabricante. Los controles Borland, los controles Swing para la versión Java 2.0, los controles AWT de la versión Java 1.1, paneles (containers), etc.

Situaremos el control que hemos diseñado en la hoja cuya pestaña se titula Other. Para ello, situamos el puntero del ratón en la barra de herramientas y pulsamos el botón derecho del ratón. Aparece un menú flotante con el nombre Properties.... Lo seleccionamos y a continuación a aparece el diálogo Palette Properties.

En la pestaña Pages elegimos Other, y a continuación pulsamos en la pestaña Add from Archive. Luego, pulsamos en el botón Browse, y vamos al subdirectorio donde hemos guardado el bean como archivo .jar. Una vez cargado pulsamos el botón Install. Observaremos que se añade un icono a la hoja Other. Finalmente cerramos el diálogo pulsando en el botón OK.

install.gif (5773 bytes)

El aspecto de la paleta de componentes será el siguiente.

other.gif (3144 bytes)

El nuevo componente aparece representado por un icono. Los otros tres componentes situados a la izquierda corresponden a otros beans a los que no se le ha asignado icono representativo.

 

El uso del bean

Creamos un applet para comprobar el funcionamiento de nuestro botón rudimentario. Una vez creado el esqueleto del applet con el asistente, se selecciona la pestaña diseño, Design. Cogemos con el ratón el componente Boton de la paleta Other, y lo depositamos en el applet. A continuación, cogemos el componente Label de la paleta AWT y lo depositamos en el applet.

 design.gif (1820 bytes)

Selecionamos la etiqueta (Label) y cambiamos sus propiedades en la hoja de propiedades del componente. Cambiamos su nombre en el editor asociado a su propiedad name, y el texto que se muestra en el editor asociado de su propiedad text.

Seleccionamos el bean y aparecen sus propiedades en la hoja de propiedades del componente. En la figura inferior situada a la izquierda vemos la hoja de propiedades del componente, y debajo hemos superpuesto la imagen del bean en el momento del diseño.

Cambiamos el nombre del componente (el objeto o variable con la que se le conoce en el código fuente) en el editor name y le ponemos btnBoton. Luego, le podemos cambiar el color, pulsando en el editor de colores un pequeño botón cuyo título es ... y que da acceso a un diálogo que presenta los distintos colores. El cambio de color queda reflejado en el componente en el momento del diseño. Por último, podemos cambiar el título, en el editor titulo y el componente cambia de tamaño para acomodar al nuevo título.

inspectorProperties.gif (2577 bytes) inspectorEvent.gif (3978 bytes)

Cuando se cambia el título con el editor titulo de la hoja de propiedades del componente, se llama a la función setTitulo, para que el bean cambie el título y modifique su tamaño. Del mismo modo, cuando se cambia la propiedad color en el editor color, se llama a la función miembro setColor que pinta el botón con el nuevo color seleccionado.

El código fuente generado por el IDE es el siguiente

package bean1Test;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import bean1.*;

public class Bean1TestApplet extends Applet {
  bean1.Boton btnBoton = new bean1.Boton();
  Label label1 = new Label();

  public Bean1TestApplet() {
  }
  public void init() {
    try {
    jbInit();
    }
    catch (Exception e) {
    e.printStackTrace();
    }
  }

  private void jbInit() throws Exception {
    this.setSize(400,300);
    label1.setText("pulsar en el botón");
    btnBoton.setTitulo("Botón");
    this.add(label1, null);
    this.add(btnBoton, null);
  }
}

La respuesta a la acción del usuario sobre el botón

Seleccionamos nuestro botón rudimentario y vamos a la hoja de propiedades y sucesos, pulsamos en la pestaña Events y hacemos doble-clic en el editor correspondiente a actionPerformed tal como se ve a la derecha en la figura anterior. El IDE genera el código que define la función respuesta a la acción del usuario sobre el botón.

  private void jbInit() throws Exception {
//...
    btnBoton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        btnBoton_actionPerformed(e);
      }
    });
  }

  void btnBoton_actionPerformed(ActionEvent e) {
//poner aquí el código de la función respuesta
  }

Ahora, solamente nos queda definir la tarea que deseamos que se realice cuando se pulsa sobre el botón, es decir, escribir el código de la función respuesta.

En este caso, la tarea es muy simple, la etiqueta (label) cambia el texto, cuando se pulsa el botón.

  void btnBoton_actionPerformed(ActionEvent e) {
     label1.setText("botón pulsado");
  }

El código fuente completo de este ejemplo es el siguiente

package bean1Test;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import bean1.*;

public class Bean1TestApplet extends Applet {
  boolean isStandalone = false;
  bean1.Boton btnBoton = new bean1.Boton();
  Label label1 = new Label();
  FlowLayout flowLayout1 = new FlowLayout();

  public Bean1TestApplet() {
  }
  public void init() {
    try {
    jbInit();
    }
    catch (Exception e) {
    e.printStackTrace();
    }
  }

  private void jbInit() throws Exception {
    this.setSize(400,300);
    label1.setText("pulsar en el botón");
    this.setLayout(flowLayout1);
    btnBoton.setTitulo("Botón");
    btnBoton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        btnBoton_actionPerformed(e);
      }
    });
    this.add(label1, null);
    this.add(btnBoton, null);
  }

  void btnBoton_actionPerformed(ActionEvent e) {
    label1.setText("botón pulsado");
  }
}

 

El código fuente

disco.gif (1035 bytes) Bean1TestApplet.java