PDF de programación - Programación II - Tema 2. Programación dirigida por eventos

Imágen de pdf Programación II - Tema 2. Programación dirigida por eventos

Programación II - Tema 2. Programación dirigida por eventosgráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.291 visualizaciones desde el 14 de Enero del 2017
414,8 KB
42 paginas
Creado hace 13a (06/03/2011)
1



Programación II
Bloque temático 1. Lenguajes de programación
Bloque temático 2. Metodología de programación
Tema 2. Programación dirigida por eventos

Tema 3.

Verificación de programas

Bloque temático 3. Esquemas algorítmicos

Programación II

Tema 2. Programación dirigida por eventos

© Mario Aldea Rivas

02/03/11

Introducción

Tema 2. Programación dirigida por eventos
2.1.
2.2. Patrón Modelo-Vista-Controlador
2.3. Ventanas
2.4. Dibujar gráficos en un panel
2.5. Paneles y Gestores de Distribución
2.6. Componentes
2.7. Gestión de eventos
2.8. Ventanas y diálogos
2.9. Eventos de bajo nivel
2.10. Bibliografía

Programación II

Tema 2. Programación dirigida por eventos

© Mario Aldea Rivas

02/03/11

2

2.1 Introducción

2.1 Introducción
En función del tipo de interacción con el usuario, los programas se
clasifican en:
• Secuenciales: reciben los datos de entrada, realizan un conjunto

de operaciones o cálculos y muestran la salida
- por ejemplo: comando “ls” de Linux

• Interactivos: exigen la intervención del usuario en tiempo de

ejecución, pero el programa realiza acciones
independientemente de las órdenes del usuario

- por ejemplo: juego en tiempo real (deportes, estrategia, ...)
• Dirigidos por eventos: el programa “espera” la llegada de un
evento (orden del usuario, ...), cuando el evento se produce
realiza la acción correspondiente y vuelve a esperar

- por ejemplo: procesador de textos

Programación II

© Mario Aldea Rivas

02/03/11

3

Tema 2. Programación dirigida por eventos

Interfaces gráficas de usuario (GUIs)

2.1 Introducción

Muchos de los programas basados en GUIs (Graphical User
Interface) constituyen un ejemplo de programa dirigido por
eventos

Las GUIs facilitan la interacción del usuario con el programa

Programación II

Tema 2. Programación dirigida por eventos

© Mario Aldea Rivas

02/03/11

Librerías Java para la creación de GUIs

2.1 Introducción

En Java existen varias librerías que permiten crear interfaces
gráficas de usuario:

• AWT: Abstract Window Toolkit
• Swing: más moderna, basada en AWT
• SWT: Standard Widget Toolkit (Eclipse)
• Fundamentos

Usaremos Swing+AWT:

Aplicación del usuario

Swing

AWT

• Forman parte de las JFC (Java Foundation Classes)
• Permite cumplir el objetivo: practicar con la programación
dirigida por eventos
• Paquetes java.awt, javax.swing
(http://java.sun.com/javase/6/docs/api/)

Programación II

Tema 2. Programación dirigida por eventos

Elementos de una GUI

© Mario Aldea Rivas

02/03/11

2.1 Introducción

4

5

• Componentes: un objeto que el usuario puede ver en la pantalla

y con el que puede interactuar

- botón, barra de desplazamiento, cuadro de texto, ...

• Contenedores: un componente que contiene otros componentes

- ventana, panel, ...

• Eventos: una acción disparada por el usuario

- pulsación de tecla, movimiento de ratón, pulsación del botón

del ratón, ...

El diseño de una GUI requiere:

- crear componentes,
- ponerles dentro de contenedores,
- y manejar los eventos generados por el usuario

Programación II

© Mario Aldea Rivas

02/03/11

6

Tema 2. Programación dirigida por eventos

Jerarquía de clases Swing y AWT
Ventanas, contenedores y eventos:

2.1 Introducción

Object

Component

Container

JComponent

Event

Window

JPane

JScrollPane

...

Frame

Dialog

JFrame

JDialog

Programación II

Tema 2. Programación dirigida por eventos

Componentes Swing:

JComponent

© Mario Aldea Rivas

02/03/11

7

2.1 Introducción

Jerarquía de clases Swing y AWT (cont.)

JLabel

JList

JTextComponent

JSlider

AbstractButton

JComboBox

JFileChooser

ToggleButton

JButton

JTextArea

JTextField

© Mario Aldea Rivas

02/03/11

8

2.2 Patrón Modelo-Vista-Controlador

JCheckBox

JRadioButton

ButtonGroup

Programación II

Tema 2. Programación dirigida por eventos

2.2 Patrón Modelo-Vista-Controlador
Modelo Vista Controlador (MVC) es un patrón de arquitectura de
software

• utilizado en aplicaciones con interfaz gráfica
• que divide la aplicación en tres partes: el Modelo, la Vista y el

Controlador

• Modelo: conjunto de clases que constituyen la solución del

problema
• puede existir independientemente de que exista la GUI

• Vista: conjunto de elementos (ventanas) que constituyen la

“vista” que el usuario tiene de la aplicación

• Controlador: actúa cuando el usuario realiza una acción sobre un

elemento activo de la vista (botón, cuadro de texto, ...)

Programación II

© Mario Aldea Rivas

02/03/11

9

Tema 2. Programación dirigida por eventos

Relación entre Modelo, Vista y Controlador

2.2 Patrón Modelo-Vista-Controlador

Vista

Modelo

Controlador

• El Controlador accede a la Vista y al Modelo

• necesita acceder a la Vista para conocer lo que el usuario ha

introducido en los distintos elementos que la forman

• con esa información accederá al Modelo para consultar o

cambiar sus contenidos

• La Vista necesita acceder al Modelo:

• por ejemplo para representar una gráfica con datos contenidos

en el Modelo

• El modelo es independiente:

• ni siquiera “sabe” que existen la Vista y el Controlador

Programación II

Tema 2. Programación dirigida por eventos

© Mario Aldea Rivas

02/03/11

10

2.2 Patrón Modelo-Vista-Controlador

Ejemplo de utilización del patrón MVC
Aplicación de gestión de un colegio

Vista

Curso

Modelo

Profesor

Alumno

Asignatura

- cuando se cierra la ventana “Introducir alumno” se actualizan los datos del
Alumno
- cuando se pulsa el botón “Ver Curso” se abre la ventana “Datos Curso” que
muestra su nombre y las asignaturas que lo componen
...............

Controlador

Programación II

Tema 2. Programación dirigida por eventos

© Mario Aldea Rivas

02/03/11

2.3 Ventanas
Clase JFrame: ventana con título y marco
• Algunos métodos heredados por la clase JFrame:

Método

Descripción

11

2.3 Ventanas

void setLocation(int x, int y)

Posiciona la ventana en la panta-
lla. (x, y) son las coordenadas de
su vértice superior izquierdo

void setSize(int ancho, int alto) Cambia el tamaño de la ventana
void setVisible(boolean b)

void pack()
void setDefaultCloseOperation
(int acción);

Hace la ventana visible o la oculta
(cuando b es false)
Reduce la ventana alrededor de
sus componentes
Acción al cerrar la ventana
(JFrame.EXIT_ON_CLOSE)

Programación II

© Mario Aldea Rivas

02/03/11

12

Tema 2. Programación dirigida por eventos

2.3 Ventanas

Ejemplo:
import javax.swing.*;
public class VentanaHola extends JFrame {

public VentanaHola() {
super("Hola");
setLocation(50,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(250, 200);
setVisible(true);

}
public static void main(String[] args) {
}

new VentanaHola();

}

Programación II

Tema 2. Programación dirigida por eventos

© Mario Aldea Rivas

02/03/11

Panel de contenidos (”content pane”)
Cada ventana tiene un panel asociado: “content pane”
• sobre él se dibujan los componentes y los gráficos

13

2.3 Ventanas

Para obtener o cambiar el content pane existen los métodos:
Container getContentPane()
void setContentPane(Container contentPane)

Programación II

Tema 2. Programación dirigida por eventos

2.4 Dibujar gráficos en un panel

© Mario Aldea Rivas

02/03/11

14

2.4 Dibujar gráficos en un panel

Los dibujos se realizan sobre un contexto gráfico
• representado por un objeto de la clase Graphics
• los paneles tienen un contexto gráfico asociado

Sistema de coordenadas:

0

0

3

eje y

6

eje x

(x=6, y=3)

Programación II

© Mario Aldea Rivas

02/03/11

15

Tema 2. Programación dirigida por eventos

Algunos métodos de la clase Graphics
void drawString(String str,
int x, int y)

(x,y)

abcdefghi

2.4 Dibujar gráficos en un panel

(1/2)

void drawLine(int x1, int y1,
int x2, int y2)

(x1,y1)

(x2,y2)

void drawRect(int x, int y,
int ancho,
int alto)

(x,y)

ancho

alto

void fillRect(int x, int y,
int ancho,
int alto)

(x,y)

ancho

alto

Programación II

© Mario Aldea Rivas

02/03/11

16

Tema 2. Programación dirigida por eventos

Algunos métodos de la clase Graphics
void drawRoundRect(int x, int y,
int ancho,
int alto,
int anchoArco,
int altoArco)
void fillRoundRect(int x, int y,
int ancho,
int alto,
int anchoArco,
int altoArco)

(x,y)

(x,y)

alto

alto

2.4 Dibujar gráficos en un panel

(2/2)

ancho

altoArco

anchoArco

ancho

void drawOval(int x, int y,
int ancho,
int alto)

(x,y)

ancho

alto

Programación II

Tema 2. Programación dirigida por eventos

Control del color

© Mario Aldea Rivas

02/03/11

17

2.4 Dibujar gráficos en un panel

(1/2)

Los gráficos se dibujan en el color vigente
La clase Graphics proporciona dos métodos para cambiar y leer
el color vigente:

public void setColor(Color c);
public Color getColor();

La clase Color proporciona constantes predefinidas para
algunos colores:

public final static Color red
public final static Color green
public final static Color blue
public final static Color yellow
public final static Color white
public final static Color black
...

Programación II

© Mario Aldea Rivas

02/03/11

18

Tema 2. Programación dirigida por eventos

(2/2)
Control del color
La clase Color también proporciona constructores para crear
nuestros propios colores:

2.4 Dibujar gráficos en un panel

public Color(int r, int g, int b)
// r, g y b en el rango [0, 255]
public Color(float r, float g, float b)
// r, g y b en el rango [0.0, 1.0]

La forma de utilizar los constructores de la clase Color es:

g.setColor(new Color(240, 35, 0));
// estas dos líneas son equivalentes
g.setColor(new Color(1.0, 1.0, 0.0));
g.setColor(Color.yellow);

Programación II

Tema 2. Programación dirigida por eventos

© Mario Aldea Rivas

02/03/11

19

2.4 Dibujar gráficos en un panel

Ejemplo de gráficos
import java.awt.Graphics;
impo
  • Links de descarga
http://lwp-l.com/pdf993

Comentarios de: Programación II - Tema 2. Programación dirigida por eventos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad