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

23
1 INF 473 Desarrollo de Aplicaciones en Java Prof. José Miguel Rubio [email protected] [email protected] PUCV Marzo 2008 Desarrollo de Interfaces Gráficas AWT – Abstract Windows Toolkit

Upload: others

Post on 07-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

1

INF 473 Desarrollo de Aplicaciones en

Java

Prof. José Miguel [email protected]@inf.ucv.cl

PUCVMarzo 2008

Desarrollo de Interfaces GráficasAWT – Abstract Windows Toolkit

Page 2: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

2

AWT

� ¿Qué es?� Su estructura.

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

� Guías de estilo

Page 3: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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.

Page 4: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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.

Page 5: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 6: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 7: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 8: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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.

Page 9: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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.

Page 10: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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.

Page 11: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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);

Page 12: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 13: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

13

Eventos - Tipos

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

Page 14: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

14

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

Eventos - Tipos

Page 15: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 16: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 17: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 18: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

18

Ejemplo

� componentesAWT.java

Page 19: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

19

Page 20: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

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

Page 21: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

21

Java Look and Feel

Windows Look and

Feel

Motif Look and Feel

MacOS Look and

Feel

Guías de estilo - Java Lookand Feel

Page 22: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

22

Guías de estilo - Java Swing

Page 23: INF 473 Desarrollo de Aplicaciones en Javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ICI 595/Seccion_8.pdf · 1 INF 473 Desarrollo de Aplicaciones en Java Prof. JoséMiguel Rubio jose.rubio.l@ucv.cl

23

Guías de estilo - Java Swing