888
Capítulo 22 Componentes de la GUI: parte 2
22.3 Ventanas: observaciones adicionales
En esta sección, hablaremos sobre algunas cuestiones importantes de
JFrame
. Un objeto
JFrame
es una
ventana
con una
barra de título
y un
borde
. La clase
JFrame
es una subclase de
java.awt.Frame
(que es una subclase
de
java.awt.Window
). Como tal,
JFrame
es uno de los pocos componentes de la GUI de Swing que no es un
componente de la GUI ligero. Cuando se muestra una ventana desde un programa de Java, ésta se proporciona
mediante el kit de herramientas de ventana de la plataforma local y, por lo tanto, la ventana tendrá la misma
apariencia que las otras ventanas que se muestren en esa plataforma. Cuando se ejecute una aplicación de Java en
una Macintosh en donde se muestre una ventana, la barra de título y los bordes de la ventana tendrán la misma
apariencia que las ventanas de las demás aplicaciones Macintosh. Cuando se ejecute una aplicación de Java en
Microsoft Windows y se muestre una ventana, la barra de título y los bordes tendrán la misma apariencia que las
ventanas de las demás aplicaciones Microsoft Windows. Y cuando se ejecute una aplicación de Java en una plata-
forma UNIX y se muestre una ventana, la barra de título y los bordes de la ventana tendrán la misma apariencia
que las ventanas de las demás aplicaciones UNIX en esa plataforma.
La clase
JFrame
soporta tres operaciones cuando el usuario cierra la ventana. De manera predeterminada,
una ventana se oculta (es decir, se quita de la pantalla) cuando el usuario la cierra. Esto puede controlarse con el
método
setDefaultCloseOperation
de
JFrame
. La interfaz
WindowConstants
(paquete
javax.swing
), que es
implementada por la clase
JFrame
, declara tres constantes para ser utilizadas con este método:
DISPOSE_ON_CLO-
SE, DO_NOTHING_ON_CLOSE
y
HIDE_ON_CLOSE
(el valor predeterminado). Algunas plataformas sólo permiten
que se muestre un número limitado de ventanas en la pantalla. Por lo tanto, una ventana es un valioso recurso que
debe regresarse al sistema cuando ya no se necesite. La clase
Window
(una superclase indirecta de
JFrame
) declara
el método
dispose
para este fi n. Cuando ya no se necesita un objeto
Window
en una aplicación, se debe desechar
explícitamente este objeto
Window
. Esto puede hacerse llamando al método
dispose
de
Window
, o llamando al
método
setDefaultCloseOperation
con el argumento
WindowConstants.DISPOSE_ON_CLOSE
. Al terminar
una aplicación se devuelven todos los recursos de ventana al sistema. Al establecer la operación de cierre prede-
terminada en
DO_NOTHING_ON_CLOSE
, el programa determinará lo que debe hacer cuando el usuario le indique
que debe cerrar la ventana.
Tip de rendimiento 22.1
Una ventana es un recurso imprescindible del sistema. Devuélvala al sistema cuando ya no sea necesaria.
De manera predeterminada, una ventana no se muestra en la pantalla sino hasta que el programa invoque al
método
setVisible
de esta ventana (heredado de la clase
java.awt.Component
) con un argumento
true
. Ade-
11
marcoSlider.setSize(
220
,
270
);
// establece el tamaño del marco
12
marcoSlider.setVisible(
true
);
// muestra el marco
13
}
// fin de main
14
}
// fin de la clase DemoSlider
Figura 22.4
| Clase de prueba para
MarcoSlider
. (Parte 2 de 2).
22_MAQ_CAP_22_DEITEL.indd888
4/19/081:17:04AM