Layouts

Solo disponible en BuenasTareas
  • Páginas : 23 (5597 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de mayo de 2011
Leer documento completo
Vista previa del texto
1

Layout Managers
Martín Pérez Mariñán martin@kristalnetworks.com
Los layout managers son uno de los conceptos más útiles que podemos encontrar en Java. Gracias a ellos podremos organizar todos los componentes de nuestra interfaz gráfica de modo que sea más sencillo añadirlos, eliminarlos o recolocar su posición. Los layout managers automatizan una gran cantidad de trabajo y eliminan alprogramador la necesidad de realizar tediosas tareas de control del interfaz. En este artículo veremos los layout managers más comunes y aprenderemos a dominarlos.

Introducción a los layout managers
Una traducción libre del término layout manager sería manejador de contenido y en realidad eso es lo que es. Un layout manager no es más que un delegado[5] que se encarga de organizar los componentesque forman parte de un contenedor como por ejemplo pueda ser una ventana. El layout manager es el encargado de decidir en que posiciones se renderizarán los componentes, que tamaño tendrán, que porción del contenedor abarcarán, etc... Todo esto se realiza de una manera transparente al programador que por lo tanto se ahorra el tener que escribir una gran cantidad de líneas de control.

Ventajas ydesventajas
Los layout managers tienen una gran cantidad de ventajas:

• Encapsulan parte de la lógica de presentación de nuestro interfaz gráfico de modo que
evitan al programador tener que escribir una gran cantidad de líneas de código. Además hacen este código mucho más sencillo de leer y por lo tanto más mantenible.

• Reorganizan automáticamente los componentes del interfaz de modo quesiempre se
ajuste a las directivas que hemos establecido previamente. Si el usuario en un momento dado decide maximizar el interfaz gráfico éste mantendrá su aspecto original en la medida de lo posible. De este modo no limitamos al usuario a un formato de pantalla determinado.

• Hacen más sencillo la labor de añadir, modificar y eliminar componentes. En un diseño
tradicional cuando nos vemosobligados a añadir un componente en un lugar donde ya
Layout Managers: Introducción a los layout managers

2

existen varios, seguramente tengamos que mover el resto de componentes del interfaz gráfico para acomodar a nuestro nuevo inquilino. Utilizando layout managers lo único que tenemos que hacer es agregar el componente y el layout manager se encarga automáticamente de reorganizar todoel interfaz.

• Hacen nuestro interfaz mucho más portable. Esto se debe a que los componentes
gráficos no tienen las mismas propiedades en todos los sistemas operativos. Un botón que muestre la cadena “Hola Mundo” en Mac no tendrá las mismas dimensiones que su homónimo en Linux o Windows. Al realizar nuestro programa con layout managers, éstos ya se encargan de ajustar los componentesadecuadamente y nos evitamos problemas inesperados. Ciertamente existen también una serie de desventajas asociadas a los layout managers:

• Requieren una buena dosis de aprendizaje y práctica. Muchos programadores odiarán
los layout managers ya que pueden resultar una experiencia traumática sin un buen aprendizaje. De todos modos, una vez dominados, son pocos los programadores que dejan de utilizarlos.• Pueden generar interfaces muy pesadas. A menudo las primeras veces que creemos
nuestros layouts nos encontraremos con que acabamos con un gran número de paneles anidados. Los paneles son objetos bastante pesados por lo que hay que tener cuidado de no sobrecargar innecesariamente nuestra interfaz gráfica.

Contenedores y Componentes
Para poder entender el funcionamiento de los layoutmanagers es necesario una pequeña base sobre lo que son los contenedores y los componentes. Un contenedor es un componente Java que puede contener otros componentes1. La clase principal es java.awt.Component de la cual se heredan componentes como java.awt.Button, java.awt.Label, etc..., y también se hereda la clase java.awt.Container que representa a un objeto contenedor. En la siguiente figura...
tracking img