abstract window tool kit

30
Abstract Window Toolkit (AWT)

Upload: jent46

Post on 19-Jun-2015

1.218 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: abstract window tool kit

Abstract Window Toolkit (AWT)

Page 2: abstract window tool kit

La clase Component

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

Page 3: abstract window tool kit

Jerarquía 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

Page 4: abstract window tool kit

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

Page 5: abstract window tool kit
Page 6: abstract window tool kit

Labels (Etiquetas)

• Son usadas para displayar información que no puede ser modificada.

• Constructores– Label ( )– Label (String s)– Label (String s, int alignment)

• Métodos– String getText( )– void setText (String s)– void setAlignment (int alignment)

• Label.LEFT, Label.CENTER, Label.RIGHT

Ver: MyLabel.html y MyLabel.java

Page 7: abstract window tool kit

Push Buttons (Botones)

• Constructores:– Button()– Button(String label)

• Métodos:– void setLabel(String label): Setea la etiqueta del

botón con el nombre especificado.– String getLabel(): Obtiene la etiqueta del botón.– void addActionListener(ActionListener l): Agrega

un listener para detectar los eventos que se producen con un botón.

Ver Button1.java y Button1.html

Page 8: abstract window tool kit

Choice

• Este componente puede presentar un usuario con una serie de alternativas de las cuales solo una selección puede hacerse.

• Constructor:– Choice(): Crea una nueva lista de selección.

• Métodos:– 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

Page 9: abstract window tool kit

Algunos métodos de Choice

• int getItemCount(): Retorna el número de items en el Choice.

• String getItem(int index): Obtiene la representación String del correspondiente índice (Los índices comienzan en cero).

• int getSelectedIndex(): Retorna el índice del item seleccionado actualmente.

• String getSelectedItem(): Representación String del item seleccionado.

Page 10: abstract window tool kit

List• Permiten escoger entre una o más opciones.• Constructores:

– List(): Crea una nueva lista– List(int rows): Crea lista con un número específico

de líneas.– List(int rows, boolean multipleMode): Crea una

nueva lista con cierto numero de filas y especifica si permite selección múltiple.

• Métodos:– 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

Page 11: abstract window tool kit

Algunos métodos de List

• int getItemCount(): Retorna el número de items en el List.          

• void removeAll(): Remueve todos los items del List. • int getSelectedIndex(): Retorna el item

seleccionado (-1 si ningún 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.

Page 12: abstract window tool kit

TextField

• Cuadro de texto de una sola línea.• Constructores:

– TextField()– TextField(int columns): Construye un campo de

texto con un número específico de columnas.– TextField(String s): Construye un campo de

texto que displaya s.• Métodos:

– 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

Page 13: abstract window tool kit

TextArea

• Constructores:– TextArea()– TextArea(String text): Construye una nueva área de

texto con un texto específico– TextArea(int rows, int columns): Construye un area de

texto con un número específico de filas y columnas.• Métodos:

– void append(String str): agrega un texto dado a un text area.

– void setColumns(int columns): Setea el número de columnas para esta área de texto.

– void setRows(int rows): Setea el número de filas para el área de texto.

• Ver TextAreaApplet.java

Page 14: abstract window tool kit

Los administradores de diseño

Layout managers

Page 15: abstract window tool kit

Layout Managers (Administradores de Diseño)

• Estos administradores, determinan el tamaño y posición del componente en el contenedor.

• Cuando el contenedor (container) necesita posicionar un componente, invoca al layout manager para que este lo haga.

Page 16: abstract window tool kit

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.

Page 17: abstract window tool kit

Tipos de administradores (Layout Managers)

• FlowLayout

• BorderLayout

• GridLayout

• CardLayout

• GridBagLayout

Page 18: abstract window tool kit

Cómo definirlo?

• Para utilizar un layout manager específico, se usa el método de la clase Container:– setLayout(AdministradorDeDiseño)

• 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.

Page 19: abstract window tool kit

FlowLayout• Es el administrador de diseño por defecto de la

clase Panel, por ende de los applets.• Coloca los componentes de izquierda a derecha

en una fila, según 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).

Page 20: abstract window tool kit

Métodos asociados a FlowLayout

• El alineamiento por defecto es centrado.

Métodos DescripcióngetAlignment() Devuelve el tipo de alineación establecido.

setAlignment(int) Establece la alineación de los componentes. getHgap() Devuelve la distancia horizontal que existe entre un componente y otro.getVgap() Devuelve la distancia vertical que existe entre un componente y otro.setHgap(int) Establece la distancia horizontal entre componentes.setVgap(int) Establece la distancia vertical entre componentes.

Page 21: abstract window tool kit

Ejemplo de FlowLayout

Ver también: EjemploFrame.java

Page 22: abstract window tool kit

BorderLayout

• Administrador por defecto para los marcos (Frame) y cuadros de diálogo.

• Este administrador posee los siguientes constructores:– BorderLayout()– BorderLayout(int distancia_h, int distancia_v)

Ver Botones.java

Page 23: abstract window tool kit

GridLayout• Este administrador divide el contenedor en

una cuadrícula, cada una de estas albergará un componente.

• Todas las casillas son del mismo tamaño.• 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

Page 24: abstract window tool kit

Ejercicio en Clase

Page 25: abstract window tool kit

Tareas

• Lección cap 9 para el próximo viernes.

• Deber: Ejercicios del capítulo 9 para el próximo viernes.

Page 26: abstract window tool kit

CardLayout

• Este administrador es el único que permite cambiar los componentes en pantalla en tiempo de ejecución.

• Su potencia radica en el uso de paneles.

• Podremos en un instante determinado visualizar uno de los paneles dejando los otros paneles sin visualizar.

Page 27: abstract window tool kit

Pasos para usar un CardLayout

• Crear un panel que tenga por administrador a CardLayout.

• Crear los diferentes paneles que contendrá nuestra aplicación, insertando, claro está, los componentes necesarios en cada panel.

• Añadir mediante el método add() de la clase Container los paneles creados, al panel cuyo administrador es CardLayout.

• Usar los métodos next(), previous(), first() o show() pertenecientes a la clase CardLayout para poder visualizar el panel correspondiente.

Page 28: abstract window tool kit

• Constructores CardLayout– CardLayout()– CardLayout(int distancia_h, int distancia_v)

• Métodos 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 específico.

Page 29: abstract window tool kit

GridBagLayout

• Similar al GridLayout, con las diferencias siguientes:– Los componentes, pueden tener diferente

tamaño.– Los componentes pueden ocupar más de

una celda.– Los componentes se pueden agregar en

cualquier orden.

Page 30: abstract window tool kit

Clase GridBagConstraints

• Esta clase especifica las restricciones de los componentes que serán colocados en un GridBagLayout.

• Las propiedades son:– anchor: Posición del componente dentro de la celda:

NORTH, NORTHWEST, CENTER, etc.– insets (int top, int left, int bottom, int right) : 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: Número de columnas que un componente

ocupa (REMAINDER: todas las que restan).– gridheight: Número de filas que un componente ocupa.

(REMAINDER). (Ver GridBagDemo.java)