SlideShare una empresa de Scribd logo
Los layout managers o manejadores de composición, en traducción literal, ayudan a adaptar los diversos
Componentes que se desean incorporar a un Panel, es decir, especifican la apariencia que tendrán los
Componentes 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 es
simple: imaginemos que se desean agrupar objetos de distinto tamaño en celdas de una rejilla virtual: si
confiados en nuestro conocimiento de un sistema gráfico determinado, se codificase a mano tal
disposición, se debería preveer el redimensionamiento del applet, su repintado cuando sea cubierto por
otra ventana, etc., además de todas las cuestiones relacionadas con un posible cambio de plataforma (uno
nunca 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ás
usadas y ha creado un gestor para cada una de tales configuraciones, que se ocupará, de forma
transparente para nosotros, de todas esas cuitas de formatos. Bien, pues estos gestores son instancias de
las distintas clases derivadas de LayoutManager y que se utilizan en el applet que genera la figura
siguiente, donde se muestran los diferentes tipos de layouts que proporciona el AWT.
FlowLayout

Es el más simple y el que se utiliza por defecto en todos los Paneles si no se fuerza el uso de alguno de los
otros. Los Componentes añadidos a un Panel con FlowLayout se encadenan en forma de lista. La cadena
es 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 se
ajustará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 los
Componentes que pueden estar en una misma línea estarán centrados, pero también se puede indicar que
se alineen a izquierda o derecha en el Contenedor.




Codigo Ejemplo
Instancia un objeto FlowLayout object alieado al Centro
// y con una separacion de 3 pixels en horizonal y vertical

FlowLayout miFlowLayout = new FlowLayout( FlowLayout.CENTER,3,3 );

// Se fija este FlowLayout para que sea el controlador de
// posicionamiento de componentes para el objeto Frame

miFrame.setLayout( miFlowLayout );
BorderLayout

La composición BorderLayout (de borde) proporciona un esquema más complejo de colocación de los
Componentes 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 el
lado izquierdo. Centro representa el resto que queda, una vez que se hayan rellenado las otras cuatro
partes. Así, este controlador de posicionamiento resuelve los problemas de cambio de plataforma de
ejecución de la aplicación, pero limita el número de Componentes que pueden ser colocados en
Contenedor a cinco; aunque, si se va a construir un interfaz gráfico complejo, algunos de estos cinco
Componentes 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 y
a los valores de separación que se hayan fijado al Contenedor. El tamaño prefijado y el tamaño mínimo
son dos informaciones muy importantes en este caso, ya que un botón puede ser redimensionado a
proporciones cualesquiera; sin embargo, el diseñador puede fijar un tamaño preferido para la mejor
apariencia del botón. El controlador de posicionamiento puede utilizar este tamaño cuando no haya
indicaciones 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 para
que siempre sea visible, al menos, el rótulo del botón. En este caso, el controlador de posicionamiento
muestra un total respeto a este valor y garantiza que por lo menos ese espacio estará disponible para el
botón.




Codigo Ejemplo
Frame miFrame = new Frame( "Tutorial de Java, AWT" );
// Se instancia un objeto BorderLayout con una holgura en vertical y
// horizontal de 3 pixels

BorderLayout miBorderLayout = new BorderLayout( 3,3 );

// Se fija este BorderLayout para que sea el controlador de
// posicionamiento de componentes para el objeto Frame

miFrame.setLayout( miBorderLayout );
CardLayout

Este es el tipo de composición que se utiliza cuando se necesita una zona de la ventana que permita
colocar 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 Ejemplo
panel1.setLayout( miGridLayout );
// Se instancia un objeto layout de tipo CardLayout para ser
      // utilizado con el Panel

CardLayout 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 definitivo
miFrame.add( panel1,"North" );
GridLayout
La composición GridLayout proporciona gran flexibilidad para situar Componentes. El controlador de
posicionamiento se crea con un determinado número de filas y columnas y los Componentes van dentro
de 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 mismo
nú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, por
lo que puede llegar a conseguirse que sean de un tamaño tan pequeño que sus etiquetas sean ilegibles.




Codigo Ejemplo
panel1.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 definitivo
miFrame.add( panel1,"North" );
GridBagLayout
Es igual que la composición de GridLayout, con la diferencia que los Componentes no necesitan tener el
mismo tamaño. Es quizá el controlador de posicionamiento más sofisticado de los que actualmente
soporta AWT.

A la hora de ponerse a trabajar con este controlador de posicionamiento, hay que tomar el rol de un
auténtico aventurero. Parece que la filosofía de la gente de JavaSoft es que todo debe hacerse en el
código. La verdad es que hasta que no haya en Java algo semejante a los recursos de X, el trabajo del
programador, si quiere prescindir de herramientas de diseño, es un tanto prehistórico en su forma de hacer
las 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 la
técnica de combinar varios paneles utilizando otros controladores de posicionamiento, dentro del mismo
programa. Loa applets no apreciarán esta diferencia, al menos no tanto como para justificar los problemas
que conlleva el uso del GridBagLayout

Más contenido relacionado

DOCX
Layout
DOCX
Ejemplo j internalframe_gine
DOCX
Concepto de layout
DOCX
Guia para e insertar codigo en mi proyecto
PDF
Objetivo interfas a codigo
DOCX
Guia de programaciвn corregida
DOCX
Resumen de mindstorms education 3
Layout
Ejemplo j internalframe_gine
Concepto de layout
Guia para e insertar codigo en mi proyecto
Objetivo interfas a codigo
Guia de programaciвn corregida
Resumen de mindstorms education 3

La actualidad más candente (14)

DOCX
Resumen de mindstorms education 3
DOCX
4 manipular botones
PPTX
Interfaz gráfica de usuario
PPTX
Breve tutorial en castellano de Modellus 4.01
PPTX
Action scrip
PDF
Manual básico del software modellus 4
PDF
Manual de ares proteus
PPTX
Unidad 4 "Manipular botones"
DOCX
PDF
Swing
 
DOCX
PDF
Manual de usuario hp 50g
PDF
Dfd
Resumen de mindstorms education 3
4 manipular botones
Interfaz gráfica de usuario
Breve tutorial en castellano de Modellus 4.01
Action scrip
Manual básico del software modellus 4
Manual de ares proteus
Unidad 4 "Manipular botones"
Swing
 
Manual de usuario hp 50g
Dfd
Publicidad

Destacado (20)

PPTX
День здоровья ноябрь
PPTX
Microfinance in costa rica
PPTX
WSys Servicios
DOC
Tortas
DOC
La educación como derecho pablo pineau
PPT
CREAR ASOCIACIÓN
PPTX
Tipos de cliente
PPTX
Sistemas operativos
PPTX
Jhooanna Dueñas Buitrago 40505039
PPTX
"Схеми"
PPTX
Competencias tecnologicas y curriculo
DOCX
Practica eventos
PPTX
Pensando a facebook, una aproximación colectiva por
PPT
Tecnologías de la información y la comunicación (
DOCX
Gutierrez andreina tema1b.doc
PDF
Chhattisgarh handicraft
PDF
وزارة شؤون الشباب والرياضة
PDF
Social Development of 5 And 6 Year Old Children in Terms of Employment Status...
PPTX
Natal e reveillon 2016
День здоровья ноябрь
Microfinance in costa rica
WSys Servicios
Tortas
La educación como derecho pablo pineau
CREAR ASOCIACIÓN
Tipos de cliente
Sistemas operativos
Jhooanna Dueñas Buitrago 40505039
"Схеми"
Competencias tecnologicas y curriculo
Practica eventos
Pensando a facebook, una aproximación colectiva por
Tecnologías de la información y la comunicación (
Gutierrez andreina tema1b.doc
Chhattisgarh handicraft
وزارة شؤون الشباب والرياضة
Social Development of 5 And 6 Year Old Children in Terms of Employment Status...
Natal e reveillon 2016
Publicidad

Similar a Layout (20)

PDF
Curso java 6
PDF
Layouts - Java
PDF
Vbr Awt 01
PPTX
Swing intefaz grafica de usuario
PPT
Entorno grafico en Java
PPT
AWT- JAVA
PPT
Entorno gráfico en Java
PPT
abstract window tool kit
DOCX
Introduccion de-aplicaciones-visuales
PDF
Gestores de diseño
PDF
Gestores de diseño
PDF
Gestores de diseño
PPT
Clase 5 JAVA 2012
PPTX
Interfaz gráfica de usuario y eventos (introducción)
PPTX
5. Gestores de Posicionamiento - Eventos.pptx
PDF
Programacion en JAVA 2
PDF
Tutorial java fx_8_espanol
DOCX
Trabajo teórico exposcición
DOC
Articulo programacion java (1)
PPTX
Programacion_II_04_disposicion_contenedores
Curso java 6
Layouts - Java
Vbr Awt 01
Swing intefaz grafica de usuario
Entorno grafico en Java
AWT- JAVA
Entorno gráfico en Java
abstract window tool kit
Introduccion de-aplicaciones-visuales
Gestores de diseño
Gestores de diseño
Gestores de diseño
Clase 5 JAVA 2012
Interfaz gráfica de usuario y eventos (introducción)
5. Gestores de Posicionamiento - Eventos.pptx
Programacion en JAVA 2
Tutorial java fx_8_espanol
Trabajo teórico exposcición
Articulo programacion java (1)
Programacion_II_04_disposicion_contenedores

Más de Boris Salleg (20)

DOCX
01. capitulo 2 6 validacion de datos
DOCX
03. prueba de conocimiento inicial excel basico terminada
PPTX
01. contenido curso internet basico
PPTX
Contenido curso excel basico
DOCX
Compromiso academico servicios de internet
DOCX
Compromiso academico excel basico
DOCX
Taller #1 institucion educativa las margaritas
PPT
Arboles
DOCX
Introduccion base de datos
DOCX
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
PPTX
Conexion bd en java y api necesaria
DOCX
Condicionales
DOCX
Algoritmo variables, constantes, tipos de datos y asignacion
DOCX
Algoritmos, programas, compiladores y lenguajes de programacion
DOCX
Algoritmo de listas simples completo
DOCX
Introduccion base de datos con MYSQL
DOCX
Practica utilizacion de beans en jsp
DOCX
Utilizacion de beans en jsp
DOCX
Clase event
PPTX
Manejoevento
01. capitulo 2 6 validacion de datos
03. prueba de conocimiento inicial excel basico terminada
01. contenido curso internet basico
Contenido curso excel basico
Compromiso academico servicios de internet
Compromiso academico excel basico
Taller #1 institucion educativa las margaritas
Arboles
Introduccion base de datos
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Conexion bd en java y api necesaria
Condicionales
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmo de listas simples completo
Introduccion base de datos con MYSQL
Practica utilizacion de beans en jsp
Utilizacion de beans en jsp
Clase event
Manejoevento

Último (20)

PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
CIRSOC-201-2024_Proyecto de Reglamento Argentino de Estructuras de Hormigón
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
Atencion prenatal. Ginecologia y obsetricia
PDF
Metodologías Activas con herramientas IAG
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Tomo 1 de biologia gratis ultra plusenmas
Fundamentos_Educacion_a_Distancia_ABC.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PLANES DE área ciencias naturales y aplicadas
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
caso clínico iam clinica y semiología l3.pptx
CIRSOC-201-2024_Proyecto de Reglamento Argentino de Estructuras de Hormigón
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Atencion prenatal. Ginecologia y obsetricia
Metodologías Activas con herramientas IAG
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Tomo 1 de biologia gratis ultra plusenmas

Layout

  • 1. Los layout managers o manejadores de composición, en traducción literal, ayudan a adaptar los diversos Componentes que se desean incorporar a un Panel, es decir, especifican la apariencia que tendrán los Componentes 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 es simple: imaginemos que se desean agrupar objetos de distinto tamaño en celdas de una rejilla virtual: si confiados en nuestro conocimiento de un sistema gráfico determinado, se codificase a mano tal disposición, se debería preveer el redimensionamiento del applet, su repintado cuando sea cubierto por otra ventana, etc., además de todas las cuestiones relacionadas con un posible cambio de plataforma (uno nunca 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ás usadas y ha creado un gestor para cada una de tales configuraciones, que se ocupará, de forma transparente para nosotros, de todas esas cuitas de formatos. Bien, pues estos gestores son instancias de las distintas clases derivadas de LayoutManager y que se utilizan en el applet que genera la figura siguiente, donde se muestran los diferentes tipos de layouts que proporciona el AWT.
  • 2. FlowLayout Es el más simple y el que se utiliza por defecto en todos los Paneles si no se fuerza el uso de alguno de los otros. Los Componentes añadidos a un Panel con FlowLayout se encadenan en forma de lista. La cadena es 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 se ajustará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 los Componentes que pueden estar en una misma línea estarán centrados, pero también se puede indicar que se alineen a izquierda o derecha en el Contenedor. Codigo Ejemplo Instancia un objeto FlowLayout object alieado al Centro // y con una separacion de 3 pixels en horizonal y vertical FlowLayout miFlowLayout = new FlowLayout( FlowLayout.CENTER,3,3 ); // Se fija este FlowLayout para que sea el controlador de // posicionamiento de componentes para el objeto Frame miFrame.setLayout( miFlowLayout );
  • 3. BorderLayout La composición BorderLayout (de borde) proporciona un esquema más complejo de colocación de los Componentes 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 el lado izquierdo. Centro representa el resto que queda, una vez que se hayan rellenado las otras cuatro partes. Así, este controlador de posicionamiento resuelve los problemas de cambio de plataforma de ejecución de la aplicación, pero limita el número de Componentes que pueden ser colocados en Contenedor a cinco; aunque, si se va a construir un interfaz gráfico complejo, algunos de estos cinco Componentes 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 y a los valores de separación que se hayan fijado al Contenedor. El tamaño prefijado y el tamaño mínimo son dos informaciones muy importantes en este caso, ya que un botón puede ser redimensionado a proporciones cualesquiera; sin embargo, el diseñador puede fijar un tamaño preferido para la mejor apariencia del botón. El controlador de posicionamiento puede utilizar este tamaño cuando no haya indicaciones 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 para que siempre sea visible, al menos, el rótulo del botón. En este caso, el controlador de posicionamiento muestra un total respeto a este valor y garantiza que por lo menos ese espacio estará disponible para el botón. Codigo Ejemplo Frame miFrame = new Frame( "Tutorial de Java, AWT" ); // Se instancia un objeto BorderLayout con una holgura en vertical y // horizontal de 3 pixels BorderLayout miBorderLayout = new BorderLayout( 3,3 ); // Se fija este BorderLayout para que sea el controlador de // posicionamiento de componentes para el objeto Frame miFrame.setLayout( miBorderLayout );
  • 4. CardLayout Este es el tipo de composición que se utiliza cuando se necesita una zona de la ventana que permita colocar 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 Ejemplo panel1.setLayout( miGridLayout ); // Se instancia un objeto layout de tipo CardLayout para ser // utilizado con el Panel CardLayout 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 definitivo miFrame.add( panel1,"North" );
  • 5. GridLayout La composición GridLayout proporciona gran flexibilidad para situar Componentes. El controlador de posicionamiento se crea con un determinado número de filas y columnas y los Componentes van dentro de 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 mismo nú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, por lo que puede llegar a conseguirse que sean de un tamaño tan pequeño que sus etiquetas sean ilegibles. Codigo Ejemplo panel1.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 definitivo miFrame.add( panel1,"North" );
  • 6. GridBagLayout Es igual que la composición de GridLayout, con la diferencia que los Componentes no necesitan tener el mismo tamaño. Es quizá el controlador de posicionamiento más sofisticado de los que actualmente soporta AWT. A la hora de ponerse a trabajar con este controlador de posicionamiento, hay que tomar el rol de un auténtico aventurero. Parece que la filosofía de la gente de JavaSoft es que todo debe hacerse en el código. La verdad es que hasta que no haya en Java algo semejante a los recursos de X, el trabajo del programador, si quiere prescindir de herramientas de diseño, es un tanto prehistórico en su forma de hacer las 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 la técnica de combinar varios paneles utilizando otros controladores de posicionamiento, dentro del mismo programa. Loa applets no apreciarán esta diferencia, al menos no tanto como para justificar los problemas que conlleva el uso del GridBagLayout