Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La clase Frame representa en AWT una ventana tal y como estamos acostumbrados a verlas en un entorno grfico. Los componentes bsicos como son los Checkbox, label, choise, etc. siempre deben formar parte de un contenedor(Frame) para ser visibles. Ya que se considera como el control u objeto principal de una aplicacin visual o grafica en java.
Por ejemplo, para que la ventana aparezca centrada y ocupe un tercio de la pantalla tanto en ancho como en alto podemos escribir:
Dimension d= Toolkit.getDefaultToolkit().getScreenSize();
// calculamos el tamao de la ventana a partir del ancho de la pantalla int ancho=d.width/3; int alto=d.height/3; ventana.setSize(ancho, alto); ventana.setLocation(d.width/2-ancho/2,d.height/2-alto/2);
Otras inicializaciones (opcional) Tambin podemos fijar los colores, el tipo de letra, el ttulo (con void setTitle(String)) o el icono que mostrar la ventana al minimizarse (con void setImage(Image)). Por ejemplo:
ventana.setBackground(new Color(20,140,10)); ventana.setForeground(Color.blue); Font fuente = new Font("Arial", Font.PLAIN, 20); ventana.setFont(fuente); ventana.setTitle("Ejemplo de ventana ");
Fijar el estilo (opcional) El mtodo setLayout(Layout) determina el estilo de la ventana, es decir cmo se distribuyen los componentes en la ventana. Por ejemplo: FlowLayout estilo = new FlowLayout(); ventana.setLayout(estilo); Todos los estilos (como FlowLayout) son subclases de la clase Layout y por eso pueden ser utilizados como argumentos del mtodo setLayout. Es un ejemplo de polimorfismo.
6
Ttulo Ejemplo de ventana Color de fondo violeta No tiene barra de men No tiene ningn Componente
7
Incorporar los componentes En este paso se aaden los componentes que se desee incluir en la ventana. Para eso se utiliza el mtodo void add(Component) heredado de la clase Container. Por ejemplo: Label etiq = new Label("Te estoy mirando..."); ventana.add(etiq); Otro ejemplo de polimorfismo: etiq es de tipo Label, pero Label hereda de Component y por eso etiq puede ser argumento del mtodo add, cuyo argumento est declarado de tipo Component.
Label
La clase Label (etiqueta) se utiliza para mostrar Strings en un componente, es decir proporcionan una forma de colocar texto esttico , para mostrar informacin que no vara, normalmente, al usuario.
Constructoras Tiene 3 constructoras: Label(): La constructora por defecto, crea una etiqueta con un String vaco.
Label(String etiq): Etiq es el String a mostrar. Label(String etiq, int alineamiento): Permite indicar si la etiqueta se mostrar en el espacio reservado para ella en el component alineada a la izquierda (constante Label.LEFT), a la derecha (Label.RIGHT) o centrada
10
Mtodos
Aparte de los mtodos heredados de Object y Component, esta clase tiene dos mtodos importantes: setText(String etiq): Para modificar el contenido de la etiqueta. String getText(): Devuelve el contenido actual de la etiqueta.
11
12
Es importante que no olvidemos incorporar los componentes bsicos a un contenedor; en otro caso no podrn ser visibles. Mostrar la ventana
14
Para tener acceso a ellos debemos: Escribir una clase para atenderlos. Esta clase debe heredar de WindowAdapter o bien implementar el interfaz WindowListener Pasarle a la ventana un objeto de ese tipo a la ventana mediante el mtodo addWindowListener. La ventana llamar al mtodo adecuado correspondiente a cada evento. Los mtodos son: void windowActivated(WindowEvent e) void windowClosed(WindowEvent e) void windowClosing(WindowEvent e) void windowDeactivated(WindowEvent e) void windowDeiconified(WindowEvent e) void windowIconified(WindowEvent e) void windowOpened(WindowEvent e)
15
De todos ellos el que nos interesa ahora es windowClosing que se utiliza cuando el usuario trata de cerrar la ventana. Para que al pulsar se cierre realmente tendremos que incluir una llamada a System.exit(0), que fuerza el fin de la aplicacin. La clase puede ser por ejemplo: class ParaAcabar extends WindowAdapter { public void windowClosing(WindowEvent
e) {
System.exit(0); }
}
16
17
Utilizacin de la herencia
Es muy normal separar el cdigo asociado a la ventana del main, haciendo una clase aparte que se encargue de la gestin de la ventana. Entonces la aplicacin queda compuesta de dos clases: la clase Ventana, y la clase Principal que se limita a crear la ventana y a hacerla visible. La configuracin de la ventana (colores, tamao, posicin, componentes, escuchas, etc.) se har entonces en la constructora de la clase Ventana, que se definir hija de la clase Frame.
18
De esta forma la clase ventana tiene todos los mtodos de la clase Frame ms todos los que nosotros aadamos posteriormente. La clase principal queda simplemente.
19