Está en la página 1de 30

Abstract Window Toolkit (AWT)

La clase Component
Todos los componentes que puedan visualizarse en pantalla son subclases de la clase Component.

Jerarqua de la clase Component


java.lang.Object java.awt.Component java.awt.TextComponent java.awt.TextField java.awt.TextArea java.awt.Canvas java.awt.Choice java.awt.Checkbox java.awt.Container java.awt.Label java.awt.List java.awt.Scrollbar

Contenedores
Nos permite insertar componentes. La clase awt.Container es la que nos permite crear los contenedores.
class java.awt.Container
class java.awt.Panel
class java.applet.Applet

class java.awt.ScrollPane class java awt.Window


class java.awt.Dialog class java.awt.Frame

Labels (Etiquetas)
Son usadas para displayar informacin que no puede ser modificada. Constructores
Label ( ) Label (String s) Label (String s, int alignment)

Mtodos
String getText( ) void setText (String s) void setAlignment (int alignment)
Label.LEFT, Label.CENTER, Label.RIGHT

Ver: MyLabel.html y MyLabel.java

Push Buttons (Botones)


Constructores: Button() Button(String label) Mtodos: void setLabel(String label): Setea la etiqueta del botn con el nombre especificado. String getLabel(): Obtiene la etiqueta del botn. void addActionListener(ActionListener l): Agrega un listener para detectar los eventos que se producen con un botn. Ver Button1.java y Button1.html

Choice
Este componente puede presentar un usuario con una serie de alternativas de las cuales solo una seleccin puede hacerse. Constructor: Choice(): Crea una nueva lista de seleccin. Mtodos: void add (String item): Agrega un item a la lista. String getItem(int index): Retorna el string correspondiente al ndice. void addItemListener(ItemListener l): Agrega un listener para detectar los eventos que se producen componente Choice. Ver ChoiceApplet.java y ChoiceApplet.html

Algunos mtodos de Choice


int getItemCount(): Retorna el nmero de items en el Choice. String getItem(int index): Obtiene la representacin String del correspondiente ndice (Los ndices comienzan en cero). int getSelectedIndex(): Retorna el ndice del item seleccionado actualmente. String getSelectedItem(): Representacin String del item seleccionado.

List
Permiten escoger entre una o ms opciones. Constructores: List(): Crea una nueva lista List(int rows): Crea lista con un nmero especfico de lneas. List(int rows, boolean multipleMode): Crea una nueva lista con cierto numero de filas y especifica si permite seleccin mltiple. Mtodos: void add(String item): agrega un item al final de la lista. void add(String item, int index): agrega un item en cierto ndice. Ver ListApplet.java y ListApplet.html

Algunos mtodos de List


int getItemCount(): Retorna el nmero de items en el List. void removeAll(): Remueve todos los items del List. int getSelectedIndex(): Retorna el item seleccionado (-1 si ningn item es seleccionado). int[] getSelectedIndexes(): Arreglo de items seleccionados. Si no hay items seleccionados, arreglo de longitud cero. String getSelectedItem(): Item seleccionado o null. String[]getSelectedItems(): Retorna arreglo de items seleccionados.

TextField
Cuadro de texto de una sola lnea. Constructores: TextField() TextField(int columns): Construye un campo de texto con un nmero especfico de columnas. TextField(String s): Construye un campo de texto que displaya s. Mtodos: void setEchoChar(char c): Setea el caracter a ser displayado a medida que el usuario tipea. void setEditable(boolean b) //true==editable Especifica si un TextField es editable. Ver TextFieldApplet.java

TextArea
Constructores: TextArea() TextArea(String text): Construye una nueva rea de texto con un texto especfico TextArea(int rows, int columns): Construye un area de texto con un nmero especfico de filas y columnas. Mtodos: void append(String str): agrega un texto dado a un text area. void setColumns(int columns): Setea el nmero de columnas para esta rea de texto. void setRows(int rows): Setea el nmero de filas para el rea de texto. Ver TextAreaApplet.java

Los administradores de diseo


Layout managers

Layout Managers (Administradores de Diseo)


Estos administradores, determinan el tamao y posicin del componente en el contenedor. Cuando el contenedor (container) necesita posicionar un componente, invoca al layout manager para que este lo haga.

Ventajas
Permiten representar de una manera ordenada los componentes en la pantalla. Cuando usamos los administradores no nos tenemos que preocupar, por ejemplo, de que se redimensione una ventana, ya que el propio administrador se encargar de reorganizar los componentes en el Container.

Tipos de administradores (Layout Managers)


FlowLayout BorderLayout GridLayout CardLayout GridBagLayout

Cmo definirlo?
Para utilizar un layout manager especfico, se usa el mtodo de la clase Container:
setLayout(AdministradorDeDiseo)

Por ejemplo:
setLayout(new BorderLayout());

Si no se especifica un layout manager se usa el default.


Para la clase Panel (superclase de la clase Applet) el layout manager por default es: FlowLayout. Para la clase Frame, el layout manager por default es: BorderLayout.

FlowLayout
Es el administrador de diseo por defecto de la clase Panel, por ende de los applets. Coloca los componentes de izquierda a derecha en una fila, segn se van insertando en el contenedor, y cuando llega al borde del contenedor los sigue insertando en la siguiente fila. Este administrador posee 3 constructores: FlowLayout( ) FlowLayout(int alineamiento)
El alineamiento puede tomar los siguientes valores: FlowLayout.LEFT, FlowLayout.RIGHT, o FlowLayout.CENTER

FlowLayout(int alineamiento, int dist_h, int dist_v).

Mtodos asociados a FlowLayout


El alineamiento por defecto es centrado. Mtodos
getAlignment() setAlignment(int) getHgap() getVgap() setHgap(int) setVgap(int)

Descripcin
Devuelve el tipo de alineacin establecido. Establece la alineacin de los componentes. Devuelve la distancia horizontal que existe entre un componente y otro. Devuelve la distancia vertical que existe entre un componente y otro. Establece la distancia horizontal entre componentes. Establece la distancia vertical entre componentes.

Ejemplo de FlowLayout

Ver tambin: EjemploFrame.java

BorderLayout
Administrador por defecto para los marcos (Frame) y cuadros de dilogo. Este administrador posee los siguientes constructores:
BorderLayout() BorderLayout(int distancia_h, int distancia_v)

Ver Botones.java

GridLayout
Este administrador divide el contenedor en una cuadrcula, cada una de estas albergar un componente. Todas las casillas son del mismo tamao. Los componentes se agregan de izquierda a derecha y de arriba hacia abajo. Tiene 3 constructores: GridLayout() GridLayout(int filas, int columnas) GridLayout(int filas, int columnas, int dist_h, int dist_v) Ver AdminGrid.java

Ejercicio en Clase

Tareas
Leccin cap 9 para el prximo viernes. Deber: Ejercicios del captulo 9 para el prximo viernes.

CardLayout
Este administrador es el nico que permite cambiar los componentes en pantalla en tiempo de ejecucin. Su potencia radica en el uso de paneles. Podremos en un instante determinado visualizar uno de los paneles dejando los otros paneles sin visualizar.

Pasos para usar un CardLayout


Crear un panel que tenga por administrador a CardLayout. Crear los diferentes paneles que contendr nuestra aplicacin, insertando, claro est, los componentes necesarios en cada panel. Aadir mediante el mtodo add() de la clase Container los paneles creados, al panel cuyo administrador es CardLayout. Usar los mtodos next(), previous(), first() o show() pertenecientes a la clase CardLayout para poder visualizar el panel correspondiente.

Constructores CardLayout CardLayout() CardLayout(int distancia_h, int distancia_v) Mtodos de CardLayout first(Container padre) Visualiza el primer contenedor. last(Container padre) Visualiza el ltimo contenedor. next(Container padre) Visualiza el siguiente contenedor. show(Container padre, String nombre) Visualiza un contenedor especfico.

GridBagLayout
Similar al GridLayout, con las diferencias siguientes:
Los componentes, pueden tener diferente tamao. Los componentes pueden ocupar ms de una celda. Los componentes se pueden agregar en cualquier orden.

Clase GridBagConstraints
Esta clase especifica las restricciones de los componentes que sern colocados en un GridBagLayout. Las propiedades son: anchor: Posicin del componente dentro de la celda: NORTH, NORTHWEST, CENTER, etc. insets (inttop, intleft, intbottom, intright) : es el margen que tienen los componentes dentro de la celda. gridx: Columna en la cual se pone al componente. gridy: Fila en la cual se pone al componente. gridwidth: Nmero de columnas que un componente ocupa (REMAINDER: todas las que restan). gridheight: Nmero de filas que un componente ocupa. (REMAINDER). (Ver GridBagDemo.java)