inf 473 desarrollo de aplicaciones en javazeus.inf.ucv.cl/~jrubio/docs/2009-01/ici...
TRANSCRIPT
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
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