Your SlideShare is downloading. ×
Layout
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Layout

1,540
views

Published on

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,540
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Los layout managers o manejadores de composición, en traducción literal, ayudan a adaptar los diversosComponentes que se desean incorporar a un Panel, es decir, especifican la apariencia que tendrán losComponentes a la hora de colocarlos sobre un Contenedor, controlando tamaño y posición (layout)automáticamente. Java dispone de varios, en la actual versión, tal como se muestra en la imagen:¿Por qué Java proporciona estos esquemas predefinidos de disposición de componentes? La razón essimple: imaginemos que se desean agrupar objetos de distinto tamaño en celdas de una rejilla virtual: siconfiados en nuestro conocimiento de un sistema gráfico determinado, se codificase a mano taldisposición, se debería preveer el redimensionamiento del applet, su repintado cuando sea cubierto porotra ventana, etc., además de todas las cuestiones relacionadas con un posible cambio de plataforma (unonunca sabe a donde van a ir a parar los propios hijos, o los applets).Sigamos imaginando, ahora, que un hábil equipo de desarrollo ha previsto las disposiciones gráficas másusadas y ha creado un gestor para cada una de tales configuraciones, que se ocupará, de formatransparente para nosotros, de todas esas cuitas de formatos. Bien, pues estos gestores son instancias delas distintas clases derivadas de LayoutManager y que se utilizan en el applet que genera la figurasiguiente, donde se muestran los diferentes tipos de layouts que proporciona el AWT.
  • 2. FlowLayoutEs el más simple y el que se utiliza por defecto en todos los Paneles si no se fuerza el uso de alguno de losotros. Los Componentes añadidos a un Panel con FlowLayout se encadenan en forma de lista. La cadenaes horizontal, de izquierda a derecha, y se puede seleccionar el espaciado entre cada Componente.Si el Contenedor se cambia de tamaño en tiempo de ejecución, las posiciones de los Componentes seajustarán automáticamente, para colocar el máximo número posible de Componentes en la primera línea.Los Componentes se alinean según se indique en el constructor. Si no se indica nada, se considera que losComponentes que pueden estar en una misma línea estarán centrados, pero también se puede indicar quese alineen a izquierda o derecha en el Contenedor.Codigo EjemploInstancia un objeto FlowLayout object alieado al Centro// y con una separacion de 3 pixels en horizonal y verticalFlowLayout miFlowLayout = new FlowLayout( FlowLayout.CENTER,3,3 );// Se fija este FlowLayout para que sea el controlador de// posicionamiento de componentes para el objeto FramemiFrame.setLayout( miFlowLayout );
  • 3. BorderLayoutLa composición BorderLayout (de borde) proporciona un esquema más complejo de colocación de losComponentes en un panel. La composición utiliza cinco zonas para colocar los Componentes sobre ellas:Norte, Sur, Este, Oeste y Centro. Es el layout o composición que se utilizan por defecto Frame y Dialog.El Norte ocupa la parte superior del panel, el Este ocupa el lado derecho, Sur la zona inferior y Oeste ellado izquierdo. Centro representa el resto que queda, una vez que se hayan rellenado las otras cuatropartes. Así, este controlador de posicionamiento resuelve los problemas de cambio de plataforma deejecución de la aplicación, pero limita el número de Componentes que pueden ser colocados enContenedor a cinco; aunque, si se va a construir un interfaz gráfico complejo, algunos de estos cincoComponentes pueden Contenedores, con lo cual el número de Componentes puede verse ampliado.En los cuatro lados, los Componentes se colocan y redimensionan de acuerdo a sus tamaños preferidos ya los valores de separación que se hayan fijado al Contenedor. El tamaño prefijado y el tamaño mínimoson dos informaciones muy importantes en este caso, ya que un botón puede ser redimensionado aproporciones cualesquiera; sin embargo, el diseñador puede fijar un tamaño preferido para la mejorapariencia del botón. El controlador de posicionamiento puede utilizar este tamaño cuando no hayaindicaciones de separación en el Contenedor, o puede ignorarlo, dependiendo del esquema que utilice.Ahora bien, si se coloca una etiqueta en el botón, se puede indicar un tamaño mínimo de ese botón paraque siempre sea visible, al menos, el rótulo del botón. En este caso, el controlador de posicionamientomuestra un total respeto a este valor y garantiza que por lo menos ese espacio estará disponible para elbotón.Codigo EjemploFrame miFrame = new Frame( "Tutorial de Java, AWT" );// Se instancia un objeto BorderLayout con una holgura en vertical y// horizontal de 3 pixelsBorderLayout miBorderLayout = new BorderLayout( 3,3 );// Se fija este BorderLayout para que sea el controlador de// posicionamiento de componentes para el objeto FramemiFrame.setLayout( miBorderLayout );
  • 4. CardLayoutEste es el tipo de composición que se utiliza cuando se necesita una zona de la ventana que permitacolocar distintos Componentes en esa misma zona. Este layout suele ir asociado con botones de selección(Choice), de tal modo que cada selección determina el panel (grupo de componentes) que se presentarán.Codigo Ejemplopanel1.setLayout( miGridLayout );// Se instancia un objeto layout de tipo CardLayout para ser // utilizado con el PanelCardLayout miCardLayout = new CardLayout(); // Instancia el primero de los dos objetos Panel que sera // integrado en el objeto Frame Panel panel1 = new Panel(); // Fijamos el layout que habiamos definido para el panel panel1.setLayout( miCardLayout );Frame miFrame = new Frame( "Tutorial de Java, AWT" );// IMPORTANTE: Se añaden los dos objetos Panel que se han// preparado al objeto Frame para crear el interfaz definitivomiFrame.add( panel1,"North" );
  • 5. GridLayoutLa composición GridLayout proporciona gran flexibilidad para situar Componentes. El controlador deposicionamiento se crea con un determinado número de filas y columnas y los Componentes van dentrode las celdas de la tabla así definida.Si el Contenedor es alterado en su tamaño en tiempo de ejecución, el sistema intentará mantener el mismonúmero de filas y columnas dentro de los márgenes de separación que se hayan indicado. En este caso,estos márgenes tienen prioridad sobre el tamaño mínimo que se haya indicado para los Componentes, porlo que puede llegar a conseguirse que sean de un tamaño tan pequeño que sus etiquetas sean ilegibles.Codigo Ejemplopanel1.setLayout( miGridLayout );// Se instancia un objeto layout de tipo GridLayout para ser // utilizado con el Panel GridLayout miGridLayout = new GridLayout( 2,3 ); // Instancia el primero de los dos objetos Panel que sera // integrado en el objeto Frame Panel panel1 = new Panel(); // Fijamos el layout que habiamos definido para el panel panel1.setLayout( miGridLayout );Frame miFrame = new Frame( "Tutorial de Java, AWT" );// IMPORTANTE: Se añaden los dos objetos Panel que se han// preparado al objeto Frame para crear el interfaz definitivomiFrame.add( panel1,"North" );
  • 6. GridBagLayoutEs igual que la composición de GridLayout, con la diferencia que los Componentes no necesitan tener elmismo tamaño. Es quizá el controlador de posicionamiento más sofisticado de los que actualmentesoporta AWT.A la hora de ponerse a trabajar con este controlador de posicionamiento, hay que tomar el rol de unauténtico aventurero. Parece que la filosofía de la gente de JavaSoft es que todo debe hacerse en elcódigo. La verdad es que hasta que no haya en Java algo semejante a los recursos de X, el trabajo delprogramador, si quiere prescindir de herramientas de diseño, es un tanto prehistórico en su forma de hacerlas cosas.Si el lector acepta una recomendación, el consejo es que evite como la peste el uso del GridBagLayout,porque tanta sofisticación lo único que acarrea son dolores de cabeza; y, siempre se puede recurrir a latécnica de combinar varios paneles utilizando otros controladores de posicionamiento, dentro del mismoprograma. Loa applets no apreciarán esta diferencia, al menos no tanto como para justificar los problemasque conlleva el uso del GridBagLayout

×