##
INICIALIZAR FUENTES, COLORES Y RECURSOS

Vamos a ir alterando los recursos de la ventana de la aplicación Java que estamos desarrollando con el AWT, para ir incorporando y visualizando los distintos Componentes que proporciona AWT. Insertemos algunas líneas de código en el constructor para inicializar la aplicación:

- Cambiemos el font de caracteres a Times Roman de 12 puntos

            setFont( new Font( "TimesRoman",Font.PLAIN,12 ) );

- Fijemos los colores de la ventana para que el fondo sea Blanco y el texto resalte en Negro

            setBackground( Color.white );
            setForeground( Color.black );

- Seleccionemos como disposición de los Componentes el BorderLayout para este Contenedor

            setLayout( new BorderLayout() );

- Incorporemos gráficos. Usamos métodos definidos en la clase Graphics; por ejemplo, reproduzcamos el título de la ventana en medio con una fuente Time Roman de 24 puntos en color Azul. Es necesario utilizar new con Font ya que en Java, todo son objetos y no podríamos utilizar un nuevo font de caracteres sin antes haberlo creado

            public void paint( Graphics g ) {
                g.setFont( new Font( "TimesRoman",Font.BOLD,24 ) );
                g.setColor( Color.blue );
                g.drawString( getTitle(),30,50 );
                }

- Incorporemos en la parte inferior de la ventana dos botones: Aceptar y Cancelar

            Panel p = new Panel();
            p.add( new Button( "Aceptar" ) );
            p.add( new Button( "Cancelar" ) );
            add( "South",p );

Los Componentes se incorporan al Contenedor a través de los dos métodos add() que hay definidos:

        add( Component c );
        add( String s,Component c );

Los Componentes también se podían haber insertado en el Frame, organizándolos en una cierta forma, teniendo en cuenta que su manejador de composición es un BorderLayout. Por ejemplo:

        add( "South",new Button( "Aceptar ) );
        add( "South",new Button( "Cancelar" ) );

Hemos utilizado un Panel y no el segundo método, porque es más útil el organizar los Componentes en pequeñas secciones. Así, con nuestro código podemos considerar al Panel como una entidad separada del Frame, lo cual permitiría cambiar el fondo, layout, fuente, etc. del Panel sin necesidad de tocar el Frame.

Si ejecutamos de nuevo la aplicación con los cambios que hemos introducido, aparecerá ante nosotros la ventana que se muestra a continuación.

Si intentásemos en esta aplicación cerrar la ventana, no sucede nada. Cuando se intenta cerrar la ventana, el sistema envía un evento que no se está tratando. Incorporemos pues un controlador de eventos y empecemos tratando el evento WINDOW_DESTROY, generado cuando se intenta cerrar la ventana:

        public boolean handleEvent( Event evt ) {
            switch( evt.id ) {
                case Event.WINDOW_DESTROY:
                    {
                    System.exit( 0 );
                    return true;
                    }
                default:
                    return false;
                }
            }

Si ahora ejecutamos de nuevo la aplicación y cerramos la ventana... Efectivamente se cierra, tal como se suponía.

|  | ##### [Anterior] [Indice] [Siguiente]