Component
, y a la variable
gridy
se le asigna la fi la en la que se colocará el objeto
Component
. En las líneas 74 y 75
se establecen las variables de
GridBagConstraints
llamadas
gridwidth
y
gridheight
. La variable
gridwidth
especifi ca el número de columnas que abarcará el objeto
Component
en la cuadrícula, y la variable
gridheight
es-
pecifi ca el número de fi las que abarcará el objeto
Component
en la cuadrícula. En la línea 76 se establecen los
valores del objeto
GridBagConstraints
para un componente en el esquema
GridBagLayout
. El método
set-
Constraints
de la clase
GridBagLayout
recibe un argumento
Component
y un argumento
GridBagConstra-
ints
. En la línea 77 se agrega el componente al objeto
JFrame
.
Cuando ejecute esta aplicación, pruebe a cambiar el tamaño de la ventana para ver cómo las restricciones para
cada componente de la GUI afectan su posición y tamaño en la ventana.
Las constantes
RELATIVE
y
REMAINDER
de
GridBagConstraints
Hay una variación de
GridBagLayout
que no utiliza a las variables
gridx
y
gridy
. En vez de estas variables, se
utilizan las constantes
RELATIVE
y
REMAINDER
de
GridBagConstraints
.
RELATIVE
especifi ca que el penúltimo
componente de cierta fi la deberá colocarse a la derecha del componente anterior en esa fi la.
REMAINDER
especifi ca
que un componente es el último en una fi la. Cualquier componente que no sea el penúltimo o el último en una
fi la, deberá especifi car valores para las variables
gridwidth
y
gridheight
de
GridbagConstraints
. La apli-
cación de las fi guras 22.23 y 22.24 ordena los componentes de un esquema
Grid-BagLayout
, utilizando estas
constantes.
En las líneas 21 y 22 se crea un objeto
GridBagLayout
y se utiliza para establecer el administrador de esque-
mas del objeto
JFrame
. Los componentes que se colocan en el esquema
GridBagLayout
se crean en las líneas 27
a 38; son un objeto
JComboBox
, un objeto
JTextField
, un objeto
JList
y cinco objetos
JButton
.
El objeto
JTextField
se agrega primero (líneas 41 a 45). Los valores de
weightx
y
weighty
se establecen
en 1. La variable
fill
se establece en
BOTH
. En la línea 44 se especifi ca que el objeto
JTextField
es el último
componente de la línea. El objeto
JTextField
se agrega al panel de contenido mediante una llamada a nuestro
método utilitario
agregarComponente
(declarado en las líneas 79 a 83). El método
agregarComponente
recibe
un argumento
Component
y utiliza el método
setConstraints
de
GridBagLayout
para establecer las restriccio-
nes de este objeto
Component
. El método
add
adjunta el componente al panel de contenido.
1
// Fig. 22.23: MarcoGridBag2.java
2
// Demostración de las constantes de GridBagLayout.
3
import
java.awt.GridBagLayout;
4
import
java.awt.GridBagConstraints;
5
import
java.awt.Component;
6
import
javax.swing.JFrame;
7
import
javax.swing.JComboBox;
8
import
javax.swing.JTextField;
9
import
javax.swing.JList;
10
import
javax.swing.JButton;
11
12
public class
MarcoGridBag2
extends
JFrame
13
{
14
private
GridBagLayout esquema;
// esquema de este marco
15
private
GridBagConstraints restricciones;
// restricciones de este esquema
16
17
// establece la GUI
18
public
MarcoGridBag2()
19
{
20
super
(
"GridBagLayout"
);
21
esquema =
new
GridBagLayout();
22
setLayout( esquema );
// establece el esquema del marco
23
restricciones =
new
GridBagConstraints();
// instancia las restricciones
24
25
// crea los componentes de la GUI
26
String metales[] = {
"Cobre"
,
"Aluminio"
,
"Plata"
};
Figura 22.23
| Las constantes
RELATIVE
y
REMAINDER
de
GridBagConstraints
. (Parte 1 de 2).
22.9 Administradores de esquemas:
BoxLayout
y
GridBagLayout
917
22_MAQ_CAP_22_DEITEL.indd917
4/19/081:17:21AM