New 2 Java: Construir una Aplicación: 2.- Herencia, Paneles y Distribución

�Cu�l era el paso 2?

Seleccionar un controlador de distribuci�n es el segundo paso en la creacci�n del panel Welcome. La clase DiveLog es el punto de entrada para la aplicaci�n Dive Log y s�lo contiene el m�todo main que �sta aplicaci�n necesita. Desde aqu�, todas las otras clases que creamos son inicializadas, por eso no necesitamos otros m�todos main.

Sin embargo, si que es necesario un controlador de distribuci�n para cada clase.

.�Layout Managers

Antes de construir y a�adir componentes a un contenedor, es bueno tener alguna idea de c�mo queremos que se sit�en los componentes. Los objetos del mundo real, como los muebles de tu casa, est�n ordenados en un conjunto de localizaciones espec�ficas, de acuerdo a los objetos que deben estar juntos y aquellos que deben estar separados. Por ejemplo, podr�a no tener sentido poner nuestro sill�n al lado del televisor, pero si que tendr�a sentido colocar el sill�n en frente del televisor con alg�n espacio entre los dos objetos.

Los objetos de aplicaci�n tambi�n necesitan ser ordenados. Los controladores de distribuci�n son objetos especiales que posicionan los objetos que creamos y a�adimos al contenedor. Todo contenedor, como JFrame y Jpanel tienen un controlador de distribuci�n asociado con ellos.

El conjunto primario de herramientas Swing consta de las clases de distribuci�n proporcionadas por el AWT, que tiene cinco controladores de distribuci�n:

  • FlowLayout
  • GridLayout
  • BorderLayout
  • CardLayout
  • GridBagLayout

Adem�s, Swing tiene varios controladores de distribuci�n, como box, scroll pane, overlay, y viewport. Decidir que controlador usar depende de c�mo queremos que se ordenen los componentes dentro del contenedor.

El control distribuci�n m�s simple es FlowLayout porque coloca los componentes de izquierda a derecha. Hay usos l�mitados para esta distribuci�n. Si tenemos s�lo uno o dos componentes en nuestra aplicaci�n, FlowLayout podr�a ser suficiente.

.�BorderLayout

El controlador BoderLayout es un controlador de distribuci�n f�cil-de-usar. Es popular porque podemos hacer mucho o poco con �l.

Se podr�an a�adir hasta cinco componentes al controlador BorderLayout y ordenarlos en cualquiera de los cuatro bordes o en el centro. Este patr�n es similar a las localizaciones geogr�ficas ordenadas por Norte, Sur, Este , Oeste y Centro, de la imagen inferior:

Si la aplicaci�n es redimensionada, los componentes tambi�n se redimensionan de foma conveniente, y el orden es preservado y mantenido por el controlador de distribuci�n. Cada regi�n se ampl�a para llenar el contenedor. Observa c�mo las regiones North y South se extienden hastas los bordes exteriores. Tambi�n observa que las �reas West, Center, y East no se extienden hasta los bordes superior e inferior.

S�lo se pueden a�adir cinco componentes a un borderLayout, uno en cada regi�n. Podemos evitar esta limitaci�n a�adiendo otro contenedor, como un JPanel, con su propia distribuci�n dentro de ese contenedor. Por ejemplo, podr�amos a�adir un JPanel al panel South, y este nuevo JPanel tambi�n podr�a usar BorderLayout. Entonces podr�amos a�adir otros cinco componentes m�s al panel South. Podemos hacer esto indefinidamente y hacer distribuciones m�s complejas con diferentes controladores de distribuci�n. Veremos un ejemplo de esta t�cnica m�s adelante.

Contrariamente a situar distribuciones dentro de distribuciones, no tenemos porque hacer uso de las cinco regiones del controlador BorderLayout.

Igual que la ilustraci�n de arriba, la clase Welcome usa BorderLayout con s�lo tres de sus regiones ocupadas por objetos.

Para empezar, necesitamos configurar el constructor de la clase, y llamar al m�todo para usar BorderLayout para este contenedor Welcome.

Sigue estos pasos...
  1. Abre el fichero Welcome.java en tu editor de texto.
  2. Crea un constructor para esta clase:
    public Welcome()
    
        {  // Opens constructor   
    
    
    
        } // Closes constructor
    
  3. Inmediatamente desp�s del corchete abierto del constructor, llama al m�todo setlayout:
    setLayout(new BorderLayout());
    
  4. Adem�s, selecciona el color de fondo de este panel:
    setBackground(Color.white);
    
  5. Graba el fichero.
Nuestro c�digo se deber�a parecer al del fichero Welcome.java.

El m�todo setLayout viene de la clase Container y se hereda haciendo de esta clase un JPanel. El m�todo selecciona la distribuci�n para el contenedor inicializando un objeto layout que especificamos como argumento. En este caso, inicializamos un objeto de la clase BorderLayout, que hace que el cotenedor Welcome sea manejado por BorderLayout. Las instrucciones para a�adir objetos a este contenedor en las localizaciones de BorderLayout se cubre m�s adelante.

Hasta este punto, ya hemos creado los componentes que posteriormente ser�n a�adidos al panel y ordenados por el controlador de distibuci�n.

Declaramos tres variables al principio de la clase Welcome. Dentro del constructor, creamos los objetos asignados a estas variables:

  • Una imagen de bandera de buceo con un t�tulo.
  • Un �rea de texto con un borde con t�tulo
  • Una imagen de un buceador y un pez
�Qu� clases deber�amos inicializar para lo objetos image, text, y text area ?
   A   Crear clases JLabel, ImageIcon, y JTextArea
   B  Declarar JText, JGIF, y JTextArea
   C  Ninguno

COMPARTE ESTE ARTÍCULO

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