Download Seccion 8 Awt

Document related concepts
no text concepts found
Transcript
INF 473
Desarrollo de Aplicaciones en
Java
Desarrollo de Interfaces Gráficas
AWT – Abstract Windows Toolkit
Prof. José Miguel Rubio
[email protected]
[email protected]
PUCV
Marzo 2008
1
AWT
¿Qué es?
Su estructura.
Los
Los
Los
Los
Componentes
Contenedores
Gestores de Posición
Eventos
Guías de estilo
2
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.
3
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.
4
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:
Label
List
Scrollbar
TextComponent
TextArea
TextField
Button
Canvas
Checkbox
Choice
Container
Panel
ScrollPane
Window
Dialog
FileDialog
Frame
5
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
6
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 panels
con layouts....
7
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 otros
FlowLayout(FlowLayout.LEFT, gap_horizontal,
gap_vertical);
Indica la alineación de los componentes: a la izquierda, derecha
8
o centro con espacio entre los componentes.
AWT - Gestores de posición
GridLayout
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, int
gat_vertical);
Especifica espaciados verticales y horizontales entre las cuadrículas.
El espaciado se mide en píxeles.
9
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.
Variarán su tamaño en la dirección vertical pero
sin nunca variarlo en la dirección horizontal.
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
10
AWT - Gestores de Posición
BorderLayout
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);
11
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
12
Eventos - Tipos
FISICOS:
ComponentEvent
ContainerEvent
FocusEvent
KeyEvent
MouseEvent
MouseMotionEvent
WindowEvent
13
Eventos - Tipos
SEMÁNTICOS:
ActionEvent
AdjustmentEvent
ItemEvent
TextEvent
14
Eventos - Adapters
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.
15
Eventos - Métodos de las
interfaces
LISTENER INTERFACE ADAPTER CLASS
ActionListener
MÉTODOS
actionPerformed
AdjustmentListener
adjustmentValueChanged
ComponentListener
ComponentAdapter
4 METODOS
ContainerListener
ContainerAdapter
2 METODOS
FocusListener
FocusAdapter
2 METODOS
ItemListener
itemStateChanged
16
Eventos - Métodos de las
interfaces
LISTENER INTERFACE ADAPTER CLASS
KeyListener
KeyAdapter
MÉTODOS
3 METODOS
MouseListener
MouseAdapter
5 METODOS
MouseMotionListener
MouseMotionAdapter
2 METODOS
TextListener
WindowListener
textValueChanged
WindowAdapter
7 METODOS
17
Ejemplo
componentesAWT.java
18
19
Guías de estilo - Java Look
and Feel
Java permite la ejecución de un mismo programa en
distintas plataformas utilizando la interfaz gráfica
correspondiente, 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
20
Guías de estilo - Java Look
and Feel
Java Look and Feel
MacOS Look and
Feel
Windows Look and
Feel
Motif Look and Feel
21
Guías de estilo - Java Swing
22
Guías de estilo - Java Swing
23