Programación en castellano
Inicio > Tutoriales > Nuevo en Java > New 2 Java: Construir una Aplicación: 3.- Recibir Entradas de Usuario
-Tutoriales

New 2 Java: Construir una Aplicación: 3.- Recibir Entradas de Usuario


Terminación del Constructor

¿Cómo deberíamos construir los cuatro paneles a añadir al panel Diver Data?

Podemos crear clases separadas e inicializarlos en el constructor de cada clase, o podemos definir métodos para construir los paneles dentro de esta clase y llamar a estos métodos desde dentro del constructor de la clase.

Para el panel Diver Data, definimos métodos para construir los cuatro paneles. Más adelante veremos como crear nuevas clases para varias secciones de un panel.

. Terminación del Constructor

Hicimos mucho trabajo dentro del constructor, pero no está terminado todavía. El plan del constructor era:

  1. Seleccionar la distribución y el color de fondo.
  2. Inicializar cada objeto préviamente declarado.
  3. Llamar a los métodos para crear cada panel.
  4. Añadir cada panel construido a las regiones del borderLayout del panel Diver.

Los pasos uno y dos están terminados. Ahora empezaremos el paso tres, llamar a los métodos para crear cada panel.

Las convenciones de nombrado recomiendan que los nombres de método empiecen con un verbo que describa lo que hace el método. En este caso, los métodos a los que estámos llamando en el constructor crean paneles para contener objetos. Por eso tiene sentido empezar sus nombres con build. De echo, los nombres de método pueden especificar qué panel construye cada método. Por ejemplo, buildImagePanel crea el panel que muestra la imagen de los caballitos de mar.

Para llamar a los métodos dentro del constructor, simplemente los nombramos y proporcionamos paréntesis vacíos (). Algunos métodos requieren que vayan parámetros dentro de los paréntesis, pero estos métodos particulares no requieren que se les pase ninguna información adicional.

Sigue estos pasos...
  1. Abre el fichero Diver.java en tu editor de texto.
  2. Añade las siguientes llamadas a métodos en el constructor:
    // Calls method to build image panel, which 
    // is defined outside of the constructor.
    buildImagePanel();     
     
    // Calls method to build address panel, which 
    // is defined outside of the constructor.   
    buildAddressPanel();
     
    // Calls method to build emerg panel, which 
    // is defined outside of the constructor.
    buildEmergencyPanel();
     
    // Calls method to build training panel, which 
    // is defined outside of the constructor.
    buildTrainingPanel();
    
  3. Graba el fichero.

De arriba hacia abajo, el constructor crea cada objeto, llama a los métodos que crean los paneles, y añade esos objetos a cada panel. El paso final es completar el constructor trayéndo de nuevo el objeto panel Diver. Añadimos los paneles a las regiones del boderLayout del objeto Diver.

Como podrías recordar de la adicción de objetos al panel Welcome, para añadir los objetos paneles a las regiones de distribución del panel Diver:

  • Llamamos al método add.
  • Suministramos la siguiente lista de parámetros.
    • Nombre de la variable del objeto a añadir.
    • Nombre de la clase de distribución.
    • Constantes de posición.

Para obtener una lista de las variables panel que seleccionamos previamente, miramos en la parte superior de la clase, o en el diagrama preliminar que hicimos.

Sigue estos pasos...
  1. Abre el fichero Diver.java en tu editor de texto.
  2. Añade los cuatro paneles:jaddress, images, training, emerg a las cuatro regiones del controlador de distribución, de esta forma:
    add(jaddress, BorderLayout.NORTH);
    add(images, BorderLayout.CENTER);
    add(training, BorderLayout.EAST);
    add(emerg, BorderLayout.SOUTH);
    
  3. Graba el fichero.

Nuestro constructor se debería parecer a este ejemplo.

. Ejemplares de Clases

Si compilamos la clase Diver en este momento, obtendremos errores. Aunque hemos llamado a los métodos para construir los paneles, no los hemos definido. Con los cuatro pasos del constructor completados, nos vamos fuera del constructor para definir los métodos necesarios para construir los paneles. Como hemos llamado a cuatro métodos, debemos definir los siguientes cuatro métodos:

  • buildImagePanel
  • buildAddressPanel
  • buildEmergencyPanel
  • buildTrainingPanel

Como la clase Diver extiende JPanel, es un panel y lo hemos configurado para usar el controlador de distribución BorderLayout. Construyendo paneles con sus propios controladores de distribución, podemos añadir muchos más objetos al panel Diver Data, construido desde la clase Diver.

Aunque cada panel no se crea en su propia clase sino en su propio método, no podemos usar la herencia a través de la palabra clave extends. Sin embargo, podemos crear un objeto panel creando un ejemplar de la clase JPanel. Una vez que tengamos un objeto panel, seleccionamos su distribución, y los objetos que queramos.

Primero empezamos la definición del método con un atributo de acceso, el tipo de método, y el nombre del método, seguido por los paréntesis vacíos:

private void buildImagePanel()

Cómo sólo está clase ncesita acceder a este método, podemos declararlo como private. El tipo del método es void porque no devuelve ningún valor. En vez de eso, simplemente construye unos cuantos objetos GUI. Usando las convenciones de nombrado para el lenguaje de programación Java, este método se llama buildImagePanel para describir claramente lo que hace el método. Esto nos ayuda a nosotros, así como a otros desarrolladores, mirando al código podemos entender lo que hace con sólo un vistazo.

Al principio de esta clase declaramos una variable llamada images del tipo JPanel. Ahora asignamos esta variable a un ejemplar de la clase JPanel usando la palabra clave new para crear un nuevo objeto JPanel:

images = new JPanel();

Como hemos creado un ejemplar de la clase JPanel, tenemos acceso a los métodos que JPanel hereda, incluyendo el método setLayout de la clase Container y el método setBackground de la clase Component. Seleccionamos el color de fondo y la distribución de este ejemplar del objeto JPanel.

Cómo sólo se añade una imagen a este panel, un simple controlador de distribución como FlowLayout es suficiente. Seleccionamos esta distribución de forma similar a como lo hicimos en los paneles Welcome y Diver llamando al método setLayout, pero esta vez también nombramos el objeto que necesita el controlador de distribución usando el operador punto. Luego inicializamos la clase apropiada para la distribución que queremos en la lista de parámetros del método:

images.setLayout(new FlowLayout);

Hemos creado un objeto panel que usa un ejemplar de la clase FlowLayout como controlador de distribución. Luego, seleccionamos el color de fondo como lo hicimos en el otro panel, pero está vez debemos nombrar el objeto panel y el operador punto:

images.setBackground(Color.white);

El color de fondo del panel images ahora es blanco.

¿Por qué no hemos creado un ejemplar de la clase Color usando la palabra clave new en el método setBackground como lo hicimos en el método setLayout?
 A  La clase Color no es una clase real.
 B  La clase Color proporciona campos static
 C  Ninguna de las dos
 
Patrocinados
 

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

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados