Overblog Seguir este blog
Edit post Administration Create my blog
1 junio 2010 2 01 /06 /junio /2010 17:51

   Durante los temas anteriores se han tratado elementos de la construcción de interfaces de usuario. No obstante los paquetes de Java proporcionan clases especiales para crear interfaces de usuario. Además discutiremos también los principales apartados sobre la apariencia.

    La colocación de componentes se realiza con el método add del contenedor en el que va el panel.


Administración de Diseño.

 

      Los administradores de diseño son una parte esencial de la creación de interfaces de usuario, ya que determinan las posiciones de los controles en un contenedor. En lenguajes orientados a una sola plataforma, el problema es menor ya que el aspecto es más fácilmente controlable. Pero la filosofía Java está orientada a la portabilidad del código. Por eso este es uno de los apartados más complejos de la creación de interfaces, ya que las medidas y posiciones dependen de la máquina en concreto.


    En otros entornos los componentes se colocan con coordenadas absolutas. En Java se desaconseja esa práctica porque en muchos casos es imposible prever el tamaño de un componente.


    En su lugar se utilizan administradores de diseño que permiten realizar colocaciones y maquetaciones de forma independiente de las coordenadas.


    El método setLayout dentro de la clase Container es el encargado de proporcionar un administrador de diseño a un determinado panel. Este método tiene como único parámetro un objeto de tipo LayoutManager. LayoutManager, es una
interfaz implementada en diversas clases que sirven para maquetar (FlowLayout, GridLayout, BoxLayout, BorderLayout, GridBagLayout, ...)


    La adición de elementos se puede crear con el método add. A veces no se muestran los cambios en el contenedor, para forzarles hay que utilizar el método validate que poseen los contenedores.

 

Flow Layout.

 

Distribuye los componentes del contenedor de izquierda a derecha y de arriba abajo. Es la distribución más fácil y una de las más efectivas.

 

Pantallazo-2.png

 

 

Pantallazo.png


Grid Layout
     Crea distribuciones en forma de malla que posee una serie de columnas y filas. Estas filas y columnas crean celdas de exactamente el mismo tamaño. Los componentes se distribuyen desde la primer celda a la izquierda de la primera fila; y van rellenando fila a fila toda la malla hasta la celda más a la derecha de la última fila.

Pantallazo-1.png

       El método add de los contenedores admite un segundo parámetro con el que se puede indicar el número de la celda donde se coloca el componente. Ejemplo:

 

       getContentPane().add(boton15,5);


       En el ejemplo el botón llamado boton15 se coloca en la sexta casilla (la primera es la 0). Si había más casillas detrás de esa, entonces se mueven al siguiente hueco.

    Si se añaden más componentes que casillas tenga el contenedor, entonces se amplía el Grid en consecuencia automáticamente.


Border Layout
        Permite colocar componentes alrededor de los bordes de un contenedor. Por defecto es lo que utiliza AWT (y por lo tanto las clases Swing). Los bordes son NORTH. SOUTH,  EAST, WEST y CENTER. Se suele utilizar estas formas en el método add para  colocar componentes en el panel deseado:

Pantallazo-3.png

 

Pantallazo-4.png

BoxLayout.


      Permite distribuir componentes en una fila o columna. Pensado para filas y columnas de botones, pertenece al paquete javax.swing (las anteriores están en java.awt).


       Para facilitar su manejo, Swing incluye un contenedor llamado Box que está pensado para manipular los componentes insertados en el contenedor. Box es una clase que posee diversos métodos estáticos que manipular internamente el administrador BoxLayout. Para crear un contenedor Box:

 

Pantallazo-5.png

 

Métodos de la Clase Box.

 

Pantallazo-6.png

 

Pantallazo-7.png

 

Pantallazo-8.png

Compartir este post

Repost 0
Published by Prof. Luis E. Aponte I.
Comenta este artículo

Comentarios

Our 11/23/2010 17:24


La explicacion es realmente buena, he repasado conceptos que ya tenia pero que no me quedaron claros en su momento y ahora no tengo ninguna duda gracias a usted.