inf 473 desarrollo de aplicaciones en javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ici...

Post on 07-Aug-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

INF 473 Desarrollo de Aplicaciones en

Java

Prof. José Miguel Rubiojose.rubio.l@ucv.cljrubio@inf.ucv.cl

PUCVMarzo 2008

Desarrollo de Interfaces GráficasAWT – Abstract Windows Toolkit

2

AWT

� ¿Qué es?� Su estructura.

� Los Componentes � Los Contenedores� Los Gestores de Posición� Los Eventos

� Guías de estilo

3

AWT - ¿Qué es?

� Es una librería de clases Java para desarrollar interfaces de usuario gráficas.

� Es la librería básica y se ha construido una posterior que es la Swing.

4

AWT - Su estructura

� La librería AWT esta compuesta por:� Los Componentes (java.awt.Component), como los Buttons, Labels,..

� Los Contenedores (java,awt.containers), contienen componentes.

� Los gestores de posición (java.awt.LayoutManager), que posiciona los componentes dentro de los contenedores.

� Los eventos (java.awt.AWTEvent), que nos indican las acciones del usuario.

5

AWT - Los componentes

� Es una clase abstracta que representa todo lo que tiene una posición, un tamaño, puede ser pintado en pantalla y puede recibir eventos.

� Los components de AWT son:

ButtonCanvasCheckboxChoiceContainer

Panel ScrollPaneWindow

� Dialog� FileDialog

� Frame

LabelListScrollbarTextComponentTextAreaTextField

6

AWT - Los contenedores

� Es una clase abstracta derivada de Component, que representa a cualquier componente que pueda contener otros componentes.

� A su vez son componentes� El AWT proporciona varias clases de Contenedores:

� Panel � Applet

� ScrollPane� Window

� Dialog� FileDialog

� Frame

7

AWT - Gestores de Posición

¿Como controlar dónde añadimos los objetos?� Para ello se crearon los Layout Manager, ellos se especifican unas posiciones determinadas en un panel, frame o applet donde añadiremos nuestros componentes o un nuevo panel, al que también le podremos añadir un layout en cuyas posiciones podremos añadir componentes o más panelscon layouts....

8

AWT - Gestores de Posición

FlowLayout� Es el que tienen los paneles por defecto.� Los objetos se van colocando en filas en el mismo

orden en que se añadieron al contenedor.� Cuando se llena una fila se pasa a la siguiente.� Tiene tres posibles constructores:

FlowLayout();.FlowLayout(FlowLayout.LEFT[RIGTH][CENTER]); Crea el layout sin añadirle los componentes, con los bordes de unos pegados a otrosFlowLayout(FlowLayout.LEFT, gap_horizontal, gap_vertical);Indica la alineación de los componentes: a la izquierda, derecha o centro con espacio entre los componentes.

9

AWT - Gestores de posiciónGridLayout� Crea un grid (malla) y va añadiendo los componentes a

las cuadrículas de la malla de izquierda a derecha y de arriba abajo.

� Todas las cuadrículas serán del mismo tamaño y crecerán o se harán más pequeñas hasta ocupar toda el área del contenedor.

� Dos posibles constructores:GridLayout(int filas, int columnas);Creará un layout en forma de malla con un número de columnas y filas igual al especificado.GridLayout(int columnas, int filas, int gap_horizontal, intgat_vertical);Especifica espaciados verticales y horizontales entre las cuadrículas. El espaciado se mide en píxeles.

10

AWT - Gestores de Posición

BorderLayout� Este layout tiene cinco zonas predeterminadas:

norte (NORTH)sur (SOUTH)

este (EAST)oeste (WEST)

centro (CENTER)

Al cambiar el tamaño del contenedor se estirarán hacia los lados para llegar a ocupar toda el área disponible, pero sin variar su tamaño en la dirección vertical.

Crecerá o disminuirá en todas las direcciones para rellenar todo el espacio vertical y horizontal que queda entre las zonas norte, sur, este y oeste

Variarán su tamaño en la dirección vertical pero sin nunca variarlo en la dirección horizontal.

11

AWT - Gestores de PosiciónBorderLayout

Posee dos contructores:

BorderLayout();Que creará el layout simple

BorderLayout(int gap_horizontal, int gap_vertical);Creará el layout dejando los gaps horizontales y verticales entre sus distintas zonas.Para añadir más paneles o componentes a este Layout hay una pequeña diferencia, aquí especificamos en el método add la región donde queremos añadir.panel.add(componente_a_añadir, BorderLayout.REGION_ que_QUERAMOS);

12

Eventos - Definición

� Evento: Encapsulamiento de la información que puede ser enviada a la aplicación de manera asíncrona

� Avisan de las acciones de usuario� Manejo de eventos: Se realiza mediante el uso de interfaces definidas en java.awt.event. Listener Interface

13

Eventos - Tipos

� FISICOS:� ComponentEvent� ContainerEvent� FocusEvent� KeyEvent� MouseEvent� MouseMotionEvent� WindowEvent

14

� SEMÁNTICOS:� ActionEvent� AdjustmentEvent� ItemEvent� TextEvent

Eventos - Tipos

15

� Adapters: Son clases que tienen definidos todos los métodos de un interfaz concreto.� La implementación de dichos métodos está vacía.

� Llamando a un Adapter y sobreescribiendo los métodos necesarios conseguimos el mismo resultado que implementando directamente el interfaz.� Heredando de un adapter extends.� Implementando directamente la interfaz implements.

Eventos - Adapters

16

Eventos - Métodos de las interfaces

LISTENER INTERFACE ADAPTER CLASS MÉTODOSActionListener actionPerformed

AdjustmentListener adjustmentValueChanged

ComponentListener ComponentAdapter 4 METODOS

ContainerListener ContainerAdapter 2 METODOS

FocusListener FocusAdapter 2 METODOS

ItemListener itemStateChanged

17

LISTENER INTERFACE ADAPTER CLASS MÉTODOSKeyListener KeyAdapter 3 METODOS

MouseListener MouseAdapter 5 METODOS

MouseMotionListener MouseMotionAdapter 2 METODOS

TextListener textValueChanged

WindowListener WindowAdapter 7 METODOS

Eventos - Métodos de las interfaces

18

Ejemplo

� componentesAWT.java

19

20

Guías de estilo - Java Lookand Feel

� Java permite la ejecución de un mismo programa en distintas plataformas utilizando la interfaz gráficacorrespondiente, gracias a AWT

� Con la aparición del conjunto de componentes Swing, parte de las JFC (Java Foundation Classes), se dispone de una apariencia gráfica propia, denominada Metal

� Además de Metal existen otras apariencias:� Motif look and feel� Windows look and feel� MacOs look and feel

21

Java Look and Feel

Windows Look and

Feel

Motif Look and Feel

MacOS Look and

Feel

Guías de estilo - Java Lookand Feel

22

Guías de estilo - Java Swing

23

Guías de estilo - Java Swing

top related