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