Sie sind auf Seite 1von 26

DOCUMENTACION de JAVA

__________________________________________________________________________________________________________________

7.Aplicaciones Basadas entorno grfico: el AWT

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

APLICACIONES BASADAS EN ENTORNOS GRFICOS: Paquete AWT


Para crear aplicaciones con entornos grficos hay que usar unos paquetes de java que contienen las clases necesarias para ello. Tenemos dos paquetes: Paquete java.awt.* Paquete java.swing.* es el tradicional es ms moderno y se vasa en el paquete awt ( Abstract Windows Toolkit).

Introduccin al Paquete AWT

AWT es un conjunto de clases que permiten disear interfaces grficas de usuario, contiene numerosas clases y mtodos para crear y gestionar ventanas. Su objetivo es proporcionar soporte grfico a las applets y dems aplicaciones grficas. Estas clases se encuentran organizadas de forma jerrquica. Estas clases de la AWT estn contenidas en el paquete java.awt y esta jerarqua de clases se puede observar en el siguiente esquema grfico:

Todos los componentes del awt derivan de la clase Component que a su vez deriva de la clase Object y por tanto puede hacerse uso los mtodos que estas clases nos proporcionan. Podemos hacer una division del awt en tres grandes grupos que son:

Componentes:Son

los componetes basicos del awt: botones, cajas de texto, casillas de seleccin, botones de radio, barras de scroll, etc.. los componentes del awt a los cuales se les puede aplicar los distintos Layouts y aadir componentes como pueden ser botones, cajas de texto,.... van permitir conformar la disposicin de los

Contenedores:Son

Gestores de Vision (Layouts):Nos


componentes en la pantalla.

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

A continuacin se resumen algunas caractersticas importantes de los componentes mostrados en la Figura anterior: 1. Todos los Components (excepto Window y los que derivan de ella) deben ser aadidos a un Container. Tambin un Container puede ser aadido a otro Container. 2. Para aadir un Component a un Container se utiliza el mtodo add( ) de la clase Container: nombreContenedor.add(nombreComponente). 3. Los Containers de mximo nivel son las Windows (Frames y Dialogs). Los Panels y ScrollPanes deben estar siempre dentro de otro Container. 4. Un Component slo puede estar en un Container. Si est en un Container y se aade a otro, deja de estar en el primero. 5. La clase Component tiene una serie de funcionalidades bsicas comunes (variables y mtodos) que son heredadas por todas sus sub-clases.

Clase Component
Un componente es un objeto grfico con el que interacta el usuario, como una ventana, un control o una applet. Representa todo lo que tiene una posicin, un tamao, puede ser pintado en pantalla y puede recibir eventos. La clase Component es una clase abstracta, que encapsula todos los atributos de un componente visual, no tiene constructores, ni puede ser instanciada, proporciona una serie de mtodos comunes a todos los componentes, que la heredan entre los ms utilizados estn: public void obj.setLocation(int x, int y): Fija el componente a la posicin especificada. public void obj.setSize(int width, int height): Establece las dimensiones del componente. public void obj.setEnable(boolean bl): Habilita o deshabilita el componente. public void obj.repaint(): Vuelve a pintar el componente. En applets hace una llamada al mtodo update. public void obj.setForeground(Color c): Establece el color de primer plano del componente. public void obj.setBackground (Color c): Establece el color de fondo. public Color obj.getForeground (): Devuelve el color de primer plano. public Color obj.getBackground (): Devuelve el color de fondo. public void obj.setVisible(boolean bl): Muestra u oculta el componente. public void obj.requestFocus( ): Pone el Foco de la aplicacin en este componente Hay componentes, como las ventanas, que sirven como contenedores de otros componentes. Este tipo de componentes tienen una superclase base comn a todos ellos, que es la clase Container.

Clase Container

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

La clase Container es una clase abstracta derivada de Component, que representa a cualquier componente que pueda contener otros componentes. Se trata, en esencia, de aadir a la clase Component la funcionalidad de adicin, sustraccin, recuperacin, control y organizacin de otros Componentes. Al igual que la clase Component, no dispone de constructores pblicos y, por lo tanto, no se pueden instanciar objetos de la clase Container. Entre los mtodos ms utilizados de esta clase estn: public public public public public public public Component add(Component comp): Aade un componente al contenedor. int countComponents(): Devuelve el nmero de componentes existentes en el contenedor. void remove(Component comp): Elimina un componente del contenedor. void setLayout(LayoutManager mgr): Establece el nuevo gestor de organizacin. LayoutManager getLayout(): Devuelve el actual gestor de organizacin. Component getComponent (int n): Devuelve una referencia al componente de ndice n. void dispose(): Elimina el contenedor y todos sus componentes.

CREACIN DE VENTANAS
Las ventanas son objetos contenedores que derivan de la clase Window y da soporte a dos nuevas clases: o Ventanas standard (Clase Frame) o Cuadros de Dialogo(Clase Dialog).

Ventanas estandar: Clase Frame.


La clase Frame representa una ventana con barra de ttulo, barra de men, bordes y esquinas para cambiar de tamao. Para crear una ventana se puede utilizar uno de los siguientes constructores: public Frame( ). Crea una ventana invisible sin ttulo. public Frame(String title): Crea una ventana invisible con un ttulo.
--------------------------------------------------------------------------------------------------------------

obj.setVisible(boolean)

Mtodo que hace visible un objeto Frame

PASOS A SEGUIR PARA CREAR UNA VENTANA: 1- Crear objeto de la clase Frame (con o sin ttulo) 2- Asignar tamao y posicin 3- Visualizar el objeto

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Una vez creada la ventana, es necesario establecer su localizacin y tamao y despus mostrarla. El siguiente ejemplo, crea una ventana con ttulo:

La ventana no se puede cerrar ya que el evento cerrar ventana no est programado.

MTODOS ms importantes de la clase FRAME.


La clase Frame proporciona los siguientes mtodos generales:
public void setVisible(boolean) Mtodo que hace visible un objeto Frame public void setSize(int,int) Asigna tamao a la ventana: ancho y alto. public void setSize(Dimension) Mtodo sobrecargado que recibe un objeto de la clase public dimen getSize(Dimension) Devuelve un objeto Dimension. Como un mtodo solo
puede devolver un valor, se crean clases que pueden devolver ms valores a traves de sus objetos. Dimensin, el cual indica la dimensin de la ventana.

public void setLocation(int,int) Mtodo que posiciona la ventana

public dimen getLocation(Dimension) Mtodo que posiciona la ventana public void setBounds(int X, int Y, int W, int H) Mtodo que posiciona con X e public void setTitle(String) Establece el nuevo ttulo al marco public String getTitle( ) Devuelve el ttulo del marco public void setEnabled(boolean) Permite habilitar o inhabilitar la ventana public void setResizable(boolean) Permite que el usuario pueda cambiar el tamao
de la ventana Y la ventana y adems la redimensiona con Width y Height.

public boolean isResizable( ) Nos dice si el usuario puede cambiar o no el tamoo

Ejercicio a desarrollar: Crear una clase ventana que herede la clase frame y
permita generar ventanas con tamao, y que sean visibles nada ms crearlas. En ella se llamar al constructor que le pase el ttulo. Este constructor solo crear la ventana y la har visible. 5

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Crear tambin otro constructor que permita dar tamao y posicin a la ventana. CLASE VENTANA:

CLASE PRUEBA VENTANAS:

RESULTADOS DE LA EJECUCION:

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Clase Color
Es una clase que se encuentra dentro del paquete awt, y representa objetos color. Los colores en java son objetos Color. Existen constantes de la clase color que representan los colores: public static final Color green; Color.green; objeto color que representa el verde

Constructor:
Color(int rojo, int verde, int azul)
(RED) (GREEN) (BLUE)

Cada entero es un n entre 0 y 255 y representa la cantidad de tonalidad de RED, GREEN y BLUE que queremos para crear cada uno de los posibles colores. EJEMPLO: Color c = new Color(200, 100, 50);

Color c = new Color(255, 0, 0); Color c = new Color(0, 255, 0); Color c = new Color(0, 0, 255);

//ROJO //VERDE //AZUL

Color de fondo y primer plano de un componente:


Constructores y Mtodos:
obj.setBackGround(Color c) obj.setForeGround(Color c) obj.getBackGround( ) obj.getForeGround( )
pone el fondo del componente de color c pone el primer plano del componente de color c solicita el color de fondo del componente solicita el color del primer plano del componente

Mtodos: int getRed( ); int getGreen( ); int getBlue( );


Ejercicio:
Aadir a la clase ventana anterior el mtodo colorear (int,int,int) que pondr el fondo de la ventana del color que le indiquemos.

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

CLASE VENTANA:

CLASE PruebaVENTANA:

tambin:

objVentanaEsteban.setBackgraund(Color.orange);

RESULTADOS DE LA EJECUCION:

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Ejercicio 0035_VentanaFrames

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Cuadros de dilogo. Clase Dialog.


La clase Dialog proporciona una ventana igual que la de Frame, las cuales puden ser MODAL o NO MODAL. Si una ventana es modal, cuando se activa acapara el control de todas las acciones del usuario y hasta que esta no se cierre no tenemos acceso al resto de ventanas. Son de tamao fijo y de fondo gris.

Para crear una ventana de dilogo se utiliza los siguientes constructores. Dialog(Frame padre) crea un dialogo a partir de un objeto Frame. Dialog(Frame padre, boolean modal) crea un dialogo modal on modal a partir de un objeto Frame. Dialog(Frame padre, String ttulo) crea un dialogo con ttulo a partir de un objeto Frame. Dialog(Frame padre, String ttulo,boolean modal) crea un dialogo modal con ttulo a partir de un objeto Frame. EJEMPLO: Ventana Dialogo

Constructores de la clase Dialog:

MTODOS de la clase Dialog.


La clase Dialog proporciona son bsicamente los mismos que los de la clase Frame y alguno ms, como:
public void setTitle(String) Establece el nuevo ttulo al dialogo public String getTitle( ) Devuelve el ttulo del dialogo public boolean IsModal( ) Indica si el cuadro es modal o no lo es public void setModal(boolean bl) Activa o desactiva la opcin modal

10

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJEMPLO: Crear un dialogo a partir de la clase Ventana de ejemplos anteriores.

EJERCICIO: VentanaDialogo2

11

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIO: VentanaDialogo3

12

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

DIBUJO DE UN COMPONENTE. Clase Graphics.


Existe una clase que es la clase Graphics que nos proporciona una serie de mtodos que nos van a permitir dibujar en un componente. La clase Graphics es una clase abstracta por lo que no vamos a poder crear objetos de esta clase, pero si variables que contendrn objetos de sus subclases.

Mtodos ms importantes de la clase Graphics.


Los mtodos que comienzan por draw son figuras rin relleno:
public void g.drawLine(int X,int Y, int W,int H) Dibuja una lnea public void g.drawRect(int X,int Y, int W,int H) Dibuja un rectangulo public void g.drawOval(int X,int Y, int W,int H) Dibuja un ovalo en un rectangulo public void g.drawString(string, int X, int Y) Dibuja un String esas coordenadas public void g.drawPolygon(int XP[ ] , int YP[ ], int p)
Recibe dos arrays con las parejas de coordenadas y el nmero de puntos del polgono. Dibuja un Rectngulo con las esquinas redondeadas con los arcos indicados. Borra un rea rectangular rellenndola con el color de fondo

public void g.drawRoundRect(int X,int Y, int W,int H, arcW,arcH) public void g.clearRect(int X,int Y, int W,int H)

Mtodos que comienzan por FILL de la clase Graphics.


Todos los mtodos que comienzan por fill sirven para rellenar de color las figuras creadas. El color de relleno ser el color que hayamos establecido como de primer plano en la ventana (forecolor).
public void g.fillRect(int X,int Y, int W,int H) Dibuja un rectangulo de color public void g.fillOval(int X,int Y, int W,int H) Dibuja un ovalo de color public void g.fillRoundRect(int X,int Y, int W,int H, arcW,arcH)
Dibuja un rectangulo con esquinas redondeadas

..................................................................................

Tenemos un problema:
Cmo vamos a aplicar los mtodos de la clase Graphics, si no podemos crear objetos de dicha clase, ya que es abstracta?

13

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Existe un mtodo que pertenece a la clase Component que es llamado automticamente por el sistema cada vez que quiero dibujar algo en un componente. Por ejemplo: cada vez que encuentre la ventana (setVisible) o la minimice... Este es el mtodo paint(Graphics g) que recibe como parmetro un objeto de la clase Graphics (que lo crea el sistema) y as nosotros podremos aplicar los mtodos de la clase Graphics sobre ste objeto. Este mtodo paint pertenece a la clase Component, y est definido como:

public void paint (Graphics g) {...} SOBREESCRITURA DEL METODO PAINT DE UN COMPONENTE PARA DIBUJAR EN EL:
Si queremos dibujar algo en un componente, tenemos que sobrescribir el mtodo paint en nuestra clase y en l hacer todo aquello que nosotros necesitemos dibujar en ese componente. class Ventana extends Frame { public Ventana(...) { ... } public void colorear(int R,int G,int B) { ... } public void paint (Graphics g) { g.drawString(Primera frase,100,200); ... } } Esta forma de dibujar tiene el problema de que el programador no controla cuando el quiere dibujar algo en el componente, sino que es el sistema el que hace la llamada al mtodo paint cuando se producen ciertos sucesos, es por ello que existe un mtodo en la clase Component que me devuelve un objeto Graphics asociado a cada componente (el mismo que posee el mtodo paint). 14

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Ese objeto graphics asociado a cada componente lo crea java automticamente cada vez que se crea un objeto que herede a Component:

Graphics g; g = obj.getGraphics( ) ;
//devuelve el objeto Graphics asociado a un componente Con este mtodo ya es posible dibujar algo en un componente cuando el programador lo necesite, ya que recuperara el objeto Graphics cuando se quiera dibujar algo en el componente. Ejemplo:
public void pintar( ) //mtodo dentro de Ventana { Graphics g; g = this.getGraphics( ); //this no es necesario,lo asume g.drawString(texto, 100,50); g.drawLine(100,60,200,60); } _______________________________________ Clase de Prueba public static void main (String[] args) { Ventana v = new Ventana(); v.pintar( ); }

15

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

METODOS DE FRECUENTE UTILIZACIN:


DE LA CLASE COLOR:
void setColor(Color c) Establece el color del dibujo, es un mtodo de la clase Graphics.

g.setColor(Color.yellow);

Color.color : black, blue, cyan, darkGray, gray, green, ligthGray, magenta, orange, pink, red, white, yelow

Color getColor(Color c) Devuelve el color del dibujo.

DE LA CLASE FONT:
Para crear un tipo de letra hay que utilizar el constructor de la clase Font: public Font(String s, int estilo, int tamao)
crea un nuevo tipo de letra, especificando su nombre, estilo y tamao.

Font f = new Font (Arial, Font.BOLD, 20); g.setFont(f);


void setFont(Font f)

(( NO HAY METODOS PARA CAMBIAR TIPO DE LETRA, TAMAO o ESTILO ))


Permite modificar la fuente del dibujo, es un mtodo de

la clase Graphics. Recibe como parmetros un objeto de la clase Font. La clase Font tiene unas constantes (BOLD, ITALIC, PLAIN).

g.setFont(Font.BOLD);

String getName( ) Font getFont( ) int getStyle( ) int getSize( ) boolean isBold( ) boolean isItalic( )

Devuelve el nombre del tipo de letra utilizada Devuelve el tipo de fuente utilizada Devuelve el estilo de la letra utilizada Devuelve el tamao de la letra utilizada Devuelve true si el estilo es bold Devuelve true si el estilo es italic

OTRAS CLASES DE SOPORTE DE DIBUJO:


Font (String, int, int ) (ya Color (int,int,int) (ya vista)
(Consultar el API JDK de Sun).
vista) Color Red 255 0 192 128 255 0 0 255 255 Green 255 0 192 128 0 255 0 255 0 Blue 255 0 192 128 0 0 255 0 255

-------->

White Black Light Gray Dark Gray Red Green Blue Yellow Purple

Dimension Rectangle Point Poligon

16

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Ejemplo de sobreescritura del metodo paint(Graphics g)

17

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

Ejemplo2 de sobreescritura del metodo paint(Graphics g)

18

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIOS:
EJERCICIO 1: Sobreescribir el mtodo paint de un componente para escribir en l. Sobrescribirlo en la clase Ventana de los ejercicios anteriores para para que se dibuje una frase dentro de la ventana. EJERCICIO 2: Sobreescribir el mtodo paint de la clase Ventana de los ejercicios anteriores para para que se dibuje un rectngulo dentro de la ventana. EJERCICIO 3: Utilizacin del mtodo getGraphics() para obtener un objeto Graphics. Crear en la clase Ventana anterior el mtodo pintar( ) sin parmetros. Este mtodo dibujar una frase y una lnea. EJERCICIO 4: Dibujar 10 ovalos de tamao y posicin aleatorios.

EJERCICIO 5:

Dibujar las siguientes ventanas.

EJERCICIO

6:

Hacer texto que predeterminado.

aumente

hasta

un

tamao

mximo

19

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIO 1: Sobreescribir el mtodo paint de un componente para escribir en l. Sobrescribirlo en la clase Ventana de los ejercicios anteriores para para que se dibuje una frase dentro de la ventana.

EJERCICIO 2: Sobreescribir el mtodo paint de la clase Ventana de los ejercicios anteriores para para que se dibuje un rectngulo dentro de la ventana.

EJERCICIO 3: Utilizacin del mtodo getGraphics() para obtener un objeto Graphics. Crear en la clase Ventana anterior el mtodo pintar( ) sin parmetros. Este mtodo dibujar una frase y una lnea.

20

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIOS 1-2-3 SOBRE sobreescritura del MTODO paint(Graphics g):

21

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIO 4:

Dibujar 10 ovalos de tamao y posicin aleatorios.

22

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIO 4:

Dibujar 10 ovalos de tamao y posicin aleatorios.

23

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIO 5-1:

Dibujar las siguiente ventana.

24

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIO 5-2 Dibujar la siguiente ventana. Lo anterior igual......

25

DOCUMENTACION de JAVA
__________________________________________________________________________________________________________________

EJERCICIO

6:

Hacer texto que predeterminado.

aumente

hasta

un

tamao

mximo

Lo anterior igual que las clases anteriores....

26

Das könnte Ihnen auch gefallen