inf 473 desarrollo de aplicaciones en javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ici...
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/1.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/3.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/10.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/19.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022043009/5f9a54c4cf8c975e9e6b26b1/html5/thumbnails/23.jpg)
23
Guías de estilo - Java Swing