910

Capítulo 22 Componentes de la GUI: parte 2

rencias a contenedores 

Box

 con un esquema 

BoxLayout

 vertical, en el que los componentes de la GUI se ordenan 

de arriba hacia abajo.

La instrucción 

for

 de las líneas 27 y 28 agrega tres objetos 

JButton

 a 

horizontal1

. La instrucción 

for

 de 

las líneas 31 a 35 agrega tres objetos 

JButton

 a 

vertical1

. Antes de agregar cada botón, en la línea 33 se agrega 

un

montante vertical

al contenedor, mediante el método estático 

createVerticalStrut

 de 

Box

. Un montante 

vertical es un componente de la GUI invisible, el cual tiene una altura fi ja en píxeles y se utiliza para garantizar 
una cantidad fi ja de espacio entre los componentes de la GUI. El argumento 

int

para el método 

createVerti-

calStrut

 determina la altura del montante, en píxeles. Cuando se cambia el tamaño del contenedor, la distancia 

entre los componentes de la GUI que están separados por montantes no cambia. La clase 

Box

 también declara el 

método

createHorizontalStrut

para esquemas 

BoxLayout

 horizontales.

La instrucción 

for

 de las líneas 38 a 42 agrega tres objetos 

JButton

 a 

horizontal2

. Antes de agregar cada 

botón, en la línea 40 se agrega 

pegamento horizontal

al contenedor, mediante el método estático 

createHori-

zontalGlue

 de 

Box

. El pegamento horizontal es un componente de la GUI invisible que puede usarse entre los 

componentes de la GUI de tamaño fi jo para ocupar espacio adicional. Generalmente, el espacio adicional aparece 
a la derecha del último componente de la GUI horizontal, o debajo del último componente de la GUI vertical, 
en un esquema 

BoxLayout

. El pegamento permite que se agregue espacio adicional entre los componentes de 

la GUI. Cuando se cambia el tamaño del contenedor, los componentes separados por pegamento conservan el 
mismo tamaño, pero el pegamento se estira o se contrae para ocupar el espacio entre los demás componentes. La 
clase

Box

 también declara el método 

createVerticalGlue

para esquemas 

BoxLayout

 verticales.

La instrucción 

for

 de las líneas 45 a 49 agrega tres objetos 

JButton

 a 

vertical2

. Antes de agregar cada 

botón, en la línea 47 se agrega un 

área rígida

al contenedor, mediante el método 

static

createRigidArea

de

Box

. Un área rígida es un componente de la GUI invisible, el cual siempre tiene una anchura y altura fi jas, en 

píxeles. El argumento para el método 

createRigidArea

 es un objeto 

Dimension

 que especifi ca la anchura y la 

altura del área rígida.

En las líneas 52 y 53 se crea un objeto 

JPanel

 y se establece su esquema en 

BoxLayout

 de la manera con-

vencional, utilizando el método 

setLayout

de

Container

. El constructor de 

BoxLayout

 recibe una referencia 

al contenedor para el que está controlando el esquema, y una constante que indica si el esquema es horizontal 
(

BoxLayout.X_AXIS

) o vertical (

BoxLayout.Y_AXIS

).

La instrucción 

for

 de las líneas 55 a 59 agrega tres objetos 

JButton

 al objeto 

panel

. Antes de agregar cada 

botón, en la línea 57 se agrega un componente pegamentoal contenedor, mediante el método 

static

create-

Glue

de

Box

. Este componente se expande o se contrae con base en el tamaño del objeto 

Box

.

En las líneas 62 y 63 se crea un objeto 

JTabbedPane

 para mostrar los cinco contenedores en este programa. 

El argumento 

JTabbedPane.TOP

 que se envía al constructor indica que las fi chas deben aparecer en la parte supe-

rior del objeto 

JTabbedPane

. El argumento 

JTabbedPane.SCROLL_TAB_LAYOUT

especifi ca que las fi chas deben 

desplazarse si hay demasiadas como para que puedan ajustarse en una sola línea.

 60 
 61  

 

// crea un objeto JTabbedPane

 62  

 

JTabbedPane fichas = 

new

 JTabbedPane( 

 

63    

JTabbedPane.TOP

,

JTabbedPane.SCROLL_TAB_LAYOUT

 ); 

 64 
 65  

 

// coloca cada contenedor en el panel con fichas

 66  

 

fichas.addTab(

"Cuadro horizontal"

, horizontal1 );

 67  

 

fichas.addTab(

"Cuadro vertical con montantes"

, vertical1 );

 68  

 

fichas.addTab(

"Cuadro horizontal con pegamento"

, horizontal2 );

 69  

 

fichas.addTab(

"Cuadro vertical con areas rigidas"

, vertical2 );

 70  

 

fichas.addTab(

"Cuadro vertical con pegamento"

, panel );

 71 
 72  

 

add( fichas ); 

// coloca panel con fichas en el marco

 73  

}

// fin del constructor de MarcoBoxLayout

 74 

}

// fin de la clase MarcoBoxLayout

Figura 22.16

  |  Administrador de esquemas 

BoxLayout

. (Parte 2 de 2).

22_MAQ_CAP_22_DEITEL.indd910

4/19/081:17:17AM