Curso Java Inicial 8 Conceptos Avanzados Awt

4,084 views

Published on

8 - Conceptos Avanzados - AWT - Curso Inicial

Published in: Education
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total views
4,084
On SlideShare
0
From Embeds
0
Number of Embeds
737
Actions
Shares
0
Downloads
0
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide
  • Curso Java Inicial 8 Conceptos Avanzados Awt

    1. 1. Java Inicial (20 horas) Emilio Avilés Ávila http://www.techmi.es
    2. 2. Temario <ul><li>Programación Orientada a Objetos </li></ul><ul><li>Introducción y Sintaxis Java </li></ul><ul><li>Sentencias Control Flujo </li></ul><ul><li>POO en Java </li></ul><ul><li>Relaciones entre Objetos </li></ul><ul><li>Polimorfismo, abstracción e interfaces </li></ul><ul><li>Excepciones </li></ul><ul><li>Conceptos avanzados </li></ul>
    3. 3. Tema 8 Conceptos Avanzados
    4. 4. Objetivos <ul><li>Programación Orientada a Objetos </li></ul><ul><li>Introducción y Sintaxis Java </li></ul><ul><li>Sentencias Control Flujo </li></ul><ul><li>POO en Java </li></ul><ul><li>Relaciones entre Objetos </li></ul><ul><li>Polimorfismo, abstracción e interfaces </li></ul><ul><li>Excepciones </li></ul><ul><li>Conceptos avanzados </li></ul><ul><li>AWT </li></ul><ul><ul><li>Controles </li></ul></ul><ul><ul><li>Contenedores </li></ul></ul><ul><ul><li>Layout </li></ul></ul><ul><ul><li>Eventos </li></ul></ul><ul><ul><ul><li>Tipos de Evento </li></ul></ul></ul><ul><ul><ul><li>Clases Adaptadoras </li></ul></ul></ul><ul><ul><ul><li>Registrar Eventos </li></ul></ul></ul><ul><ul><ul><li>Gestión de Eventos </li></ul></ul></ul>
    5. 5. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Interfaz Gráfica Usuario (GUI) </li></ul><ul><ul><li>AWT: Abstract Window Toolkit </li></ul></ul><ul><ul><ul><li>Dar a nuestras aplicaciones un entorno gráfico </li></ul></ul></ul><ul><ul><li>Independiente de plataforma </li></ul></ul><ul><ul><ul><li>Unix  X-Windows </li></ul></ul></ul><ul><ul><ul><li>Windows  Entorno visual S.O. </li></ul></ul></ul><ul><ul><ul><li>... </li></ul></ul></ul><ul><ul><li>Jerarquía de elementos </li></ul></ul><ul><ul><ul><li>Componentes : Controles visuales de nuestra GUI. </li></ul></ul></ul><ul><ul><ul><li>Layout : Política de diseño sobre componentes. </li></ul></ul></ul><ul><ul><ul><li>Eventos : Clases para controlar eventos que los diferentes controles pueden originar </li></ul></ul></ul>
    6. 6. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Componentes </li></ul><ul><ul><li>Se componen de los controles </li></ul></ul><ul><ul><ul><li>Botones, Label, Checkbox, … </li></ul></ul></ul><ul><ul><li>Los contenedores que albergarán dichos controles </li></ul></ul><ul><ul><ul><li>Panel, ScrollPanel, Dialog, Frame, .. </li></ul></ul></ul>Container
    7. 7. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Container </li></ul><ul><ul><li>Sirven para incluir otros objetos gráficos </li></ul></ul><ul><ul><li>Un contenedor puede contener otros contenedores ( XJ: frame con varios frame) </li></ul></ul><ul><ul><li>La clase container es demasiado genérica </li></ul></ul><ul><ul><ul><li>Se suele utilizar sus hijos (Panel, Frame, …) </li></ul></ul></ul>
    8. 8. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Contenedores: Window </li></ul><ul><ul><li>Objetos ventana, sin borde ni menú. </li></ul></ul><ul><ul><li>Los métodos más interesantes son: </li></ul></ul><ul><ul><ul><li>toFront() </li></ul></ul></ul><ul><ul><ul><ul><li>Trae al frente la ventana </li></ul></ul></ul></ul><ul><ul><ul><li>toBack() </li></ul></ul></ul><ul><ul><ul><ul><li>Envía al fondo la ventana </li></ul></ul></ul></ul><ul><ul><ul><li>show() </li></ul></ul></ul><ul><ul><ul><ul><li>Visualiza la ventana. En caso de estar ya cargada, la trae al frente. </li></ul></ul></ul></ul><ul><ul><ul><li>pack() </li></ul></ul></ul><ul><ul><ul><ul><li>Permite que los componentes y la ventana se ajusten a los valores preferidos. </li></ul></ul></ul></ul>
    9. 9. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Contenedores: Frame </li></ul><ul><ul><li>Objetos ventana, pero tiene borde y puede incorporar un menú </li></ul></ul><ul><ul><li>Si depende de otra ventana  usar Window . </li></ul></ul><ul><ul><li>Los métodos más interesantes son: </li></ul></ul><ul><ul><ul><li>String getTitle() - void setTitle(String t) </li></ul></ul></ul><ul><ul><ul><ul><li>Obtener y cambiar el título que aparecerá en la ventana. </li></ul></ul></ul></ul><ul><ul><ul><li>MenuBar getMenuBar() --- void setMenuBar(MenuBar mb) </li></ul></ul></ul><ul><ul><ul><ul><li>Obtener y modificar la barra de menú de la ventana. </li></ul></ul></ul></ul>
    10. 10. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Contenedores: Dialog </li></ul><ul><ul><li>Ventana que depende de otro ventana (de un Frame) </li></ul></ul><ul><ul><ul><li>Si se cierra el Frame se cierra también el Dialog . </li></ul></ul></ul><ul><ul><ul><li>Si se minimiza el Frame , se minimizará también el Dialog . </li></ul></ul></ul><ul><ul><ul><li>Si se maximiza el Frame , se maximizará también el Dialog . </li></ul></ul></ul><ul><ul><li>Tipos: </li></ul></ul><ul><ul><ul><li>Modales : la aplicación no puede realizar otra operación hasta que no se cierre el Dialog </li></ul></ul></ul><ul><ul><ul><li>No Modal : la aplicación continua su ejecución aunque el Dialog no se haya cerrado ( Defecto) </li></ul></ul></ul><ul><ul><li>FileDialog: Dialogo para interactuar con nuestro sistema de archivos. </li></ul></ul>
    11. 11. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Contenedores: Panel </li></ul><ul><ul><li>Objeto contenedor que puede incluir otros contenedores y controles. </li></ul></ul><ul><ul><ul><li>Las clases anteriores por ser contenedores de alto nivel no permitían esta opción </li></ul></ul></ul><ul><ul><li>Sus métodos nos permitirán: </li></ul></ul><ul><ul><ul><li>Añadir nuevos controles </li></ul></ul></ul><ul><ul><ul><li>Eliminar controles existentes en un Panel </li></ul></ul></ul><ul><ul><ul><li>Aplicar la política de diseño deseada (Layout) </li></ul></ul></ul>
    12. 12. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout </li></ul><ul><ul><li>Permiten la portabilidad de nuestras aplicaciones. </li></ul></ul><ul><ul><li>Generalizan la política de diseño de nuestros interfaces </li></ul></ul><ul><ul><li>Independiza del sistema final donde se visualizará nuestra aplicación </li></ul></ul><ul><ul><ul><li>Resolución </li></ul></ul></ul><ul><ul><ul><li>Dimensiones </li></ul></ul></ul><ul><ul><ul><li>… </li></ul></ul></ul>
    13. 13. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: Flowlayout </li></ul><ul><ul><li>Los controles se sitúan en el orden en el que fueron añadidos al contenedor </li></ul></ul><ul><ul><ul><li>De izquierda a derecha y de arriba abajo </li></ul></ul></ul><ul><ul><li>Los controles se recolocarán siempre que se redimensione el contenedor </li></ul></ul><ul><ul><li>Podemos establecer </li></ul></ul><ul><ul><ul><li>La alineación de los controles respecto al contenedor ( izquierda, centro o derecha ) </li></ul></ul></ul><ul><ul><ul><li>La separación entre ellos tanto horizontal como vertical </li></ul></ul></ul>
    14. 14. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: Flowlayout  Ejemplo </li></ul>
    15. 15. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: GridLayout </li></ul><ul><ul><li>Los controles se sitúan en Filas y Columnas </li></ul></ul><ul><ul><ul><li>Primero las filas y después las columnas </li></ul></ul></ul><ul><ul><li>Todos los objetos tienen el mismo tamaño. </li></ul></ul><ul><ul><li>Podemos establecer </li></ul></ul><ul><ul><ul><li>Cuantas filas y columnas se desea que se utilice para situar los controles </li></ul></ul></ul><ul><ul><ul><li>La separación tanto horizontal como vertical entre los controles </li></ul></ul></ul>
    16. 16. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: GridLayout - Ejemplo </li></ul>
    17. 17. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: BorderLayout </li></ul><ul><ul><li>Establece cinco zonas de ubicación </li></ul></ul><ul><ul><ul><li>La parte central ocupa la zona que quede libre entre las otras cuatro zonas restantes. </li></ul></ul></ul><ul><ul><ul><li>Al agregar un componente se indica la zona </li></ul></ul></ul><ul><ul><ul><li>Nos permite indicar separación Vertical y Horizont. </li></ul></ul></ul>
    18. 18. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: BorderLayout - Ejemplo </li></ul>
    19. 19. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: CardLayout </li></ul><ul><ul><li>Nos permite representar varios objetos contenedores </li></ul></ul><ul><ul><ul><li>Normalmente Panel </li></ul></ul></ul><ul><ul><li>Cada Card tendrá su política de diseño. </li></ul></ul><ul><ul><li>Máximo dos Card a la vez. </li></ul></ul><ul><ul><li>Simula un serie de ‘Capas’ a mostrar. </li></ul></ul><ul><ul><li>Métodos más comunes </li></ul></ul><ul><ul><ul><li>void add (Component c , index i) </li></ul></ul></ul><ul><ul><ul><li>void first(Container c) / void last(Container c) </li></ul></ul></ul><ul><ul><ul><li>void show(Container c, String nombreCard) </li></ul></ul></ul><ul><ul><ul><li>void next(Container c) / void previous(Container c) </li></ul></ul></ul>
    20. 20. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: CardLayout - Ejemplo </li></ul>
    21. 21. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: GridBagLayout </li></ul><ul><ul><li>Es el más completo y complejo </li></ul></ul><ul><ul><li>Su diseño se basa en una rejilla ( GridLayout) </li></ul></ul><ul><ul><li>Diferencia </li></ul></ul><ul><ul><ul><li>Las filas pueden tener varias alturas </li></ul></ul></ul><ul><ul><ul><li>Las columnas diferentes anchos </li></ul></ul></ul><ul><ul><li>Los controles se redimensionan en base a unas restricciones ( constrains) </li></ul></ul><ul><ul><ul><li>void setConstraints(Component c , GridBagConstraints reglas) </li></ul></ul></ul><ul><ul><li>GridBagConstraints </li></ul></ul><ul><ul><ul><li>gridx --- gridy: Fila y columna donde situar la parte superior </li></ul></ul></ul><ul><ul><ul><li>gridwidth --- gridheight: Numero filas/column. que ocupará </li></ul></ul></ul><ul><ul><ul><li>Anchor: Donde se desea ubicar el componente </li></ul></ul></ul><ul><ul><ul><li>… </li></ul></ul></ul>
    22. 22. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Layout: GridBagLayout - Ejemplo </li></ul>
    23. 23. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Eventos </li></ul><ul><ul><li>Indican como se comportará nuestra aplicación frente a nuestras acciones </li></ul></ul><ul><ul><li>Cada acción genera un evento </li></ul></ul><ul><ul><li>AWT genera un evento heredado de AWTEvent </li></ul></ul>
    24. 24. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Tipo de </li></ul><ul><li>Eventos </li></ul>
    25. 25. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Eventos vs Componentes/Contenedores </li></ul>
    26. 26. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Interfaces </li></ul><ul><li>para </li></ul><ul><li>controlar </li></ul><ul><li>Eventos </li></ul>
    27. 27. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Clases adaptadoras </li></ul><ul><ul><li>Realizan la implementación vacía de los interfaces anteriores. </li></ul></ul>
    28. 28. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Registrar Eventos </li></ul><ul><ul><li>Para controlar eventos de un objeto debemos </li></ul></ul><ul><ul><ul><li>Indicar el tipo de evento que se desea controlar </li></ul></ul></ul><ul><ul><ul><li>Indicar la clase que gestionará el evento </li></ul></ul></ul><ul><ul><li>control.addEventListener(eventListenerObject); </li></ul></ul><ul><ul><ul><li>control: Objeto que genera el evento </li></ul></ul></ul><ul><ul><ul><li>evenListenerObject : Objeto que controla el evento </li></ul></ul></ul><ul><ul><ul><li>addEventListener: Método que registra la clase que controla el evento. </li></ul></ul></ul><ul><ul><li>XJ: Registrar el evento del click en un botón </li></ul></ul><ul><ul><ul><li>boton.addActionListener(objQueGestionaElEvento); </li></ul></ul></ul>
    29. 29. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Gestión de Eventos </li></ul><ul><ul><li>Control por parte de la propia clase que contiene el control que genera el evento </li></ul></ul><ul><ul><li>Control por parte de una clase externa </li></ul></ul><ul><ul><li>Control por parte de una clase interna </li></ul></ul><ul><ul><li>Control por parte de una clase anónima </li></ul></ul>
    30. 30. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Gestión de Eventos: la propia clase </li></ul>….
    31. 31. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Gestión de Eventos: Clase externa </li></ul>
    32. 32. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Gestión de Eventos: Clase interna </li></ul>… …
    33. 33. 8 – Conceptos Avanzados: Interfaz Gráfica de Usuario (AWT) <ul><li>Gestión de Eventos: clase anónima </li></ul>…
    34. 34. Conclusiones <ul><li>Programación Orientada a Objetos </li></ul><ul><li>Introducción y Sintaxis Java </li></ul><ul><li>Sentencias Control Flujo </li></ul><ul><li>POO en Java </li></ul><ul><li>Relaciones entre Objetos </li></ul><ul><li>Polimorfismo, abstracción e interfaces </li></ul><ul><li>Excepciones </li></ul><ul><li>Conceptos avanzados </li></ul><ul><li>AWT </li></ul><ul><ul><li>Controles </li></ul></ul><ul><ul><li>Contenedores </li></ul></ul><ul><ul><li>Layout </li></ul></ul><ul><ul><li>Eventos </li></ul></ul><ul><ul><ul><li>Tipos de Evento </li></ul></ul></ul><ul><ul><ul><li>Clases Adaptadoras </li></ul></ul></ul><ul><ul><ul><li>Registrar Eventos </li></ul></ul></ul><ul><ul><ul><li>Gestión de Eventos </li></ul></ul></ul>

    ×