inv unidad 1 topicos avanzados de programacion

16
2016 Anel Verónica Sosa Mejía Tópicos avanzados de Programación 18-2-2016 Unidad 1 EVENTOS

Transcript of inv unidad 1 topicos avanzados de programacion

Page 1: inv unidad 1 topicos avanzados de programacion

2016

Anel Verónica Sosa Mejía

Tópicos avanzados de Programación

18-2-2016

Unidad 1 EVENTOS

Page 2: inv unidad 1 topicos avanzados de programacion

1

1

Contenido

EVENTOS ........................................................................................... 2

1.1 Tipos de eventos Eventos de bajo nivel.................................... 2

Eventos semánticos. .................................................................... 3

Generación y propagación de eventos. .......................................... 4

Métodos de control de eventos. .................................................... 4

Creación de eventos. ...................................................................... 6

EJEMPLO DE CREACION DE EVENTOS: .............................................. 7

BIBLIOGRAFIA ................................................................................. 15

Page 3: inv unidad 1 topicos avanzados de programacion

2

2

EVENTOS Objetivo: Resolver problemas utilizando programación de eventos. Un evento es la notificación

que hace un elemento gráfico cuando el usuario interactúa con él. Por lo tanto, si se realiza alguna

acción sobre algún elemento de la interfaz, se dice que se ha generado un evento en dicho

elemento.

Tipos de eventos Eventos de bajo nivel Representan entradas o interacciones de bajo nivel con elementos del interfaz gráfico (Cambio de

tamaño, cambio del foco, operación con el ratón o con el teclado).

Tabla 1Lista de eventos de bajo nivel:

Ilustración 1 Ejemplo de KeyEvent

Ilustración 2 ejemplo de MouseEvent

Page 4: inv unidad 1 topicos avanzados de programacion

3

3

Eventos semánticos.

Eventos de alto nivel que encapsulan la semántica del modelo de componentes del interfaz

de usuario (Hacer una acción, un cambio de estado en un elemento, etc.). No están

relacionados con una clase específica de componente sino que pueden aplicarse a todos los

componentes que implementen un modelo semántico similar.

Tabla 2

Ilustración 3ELEMENTOS SELECCIONADOS

ILUSTRACIÓN 3CAMBIOS EN LA SELCCION ACTUAL DE UNA LISTA

Page 5: inv unidad 1 topicos avanzados de programacion

4

4

Generación y propagación de eventos.

El paquete java.awt.event es el que contiene la mayor parte de las clases e interfaces de eventos.

El modelo de delegación de eventos es un concepto que trabaja de la siguiente manera: Una

fuente genera un evento y lo envía a uno a más oyentes o auditores, que han estado simplemente

esperando hasta que reciben ese evento y una vez recibido lo procesan y lo devuelven. Una

fuente es un objeto que genera un evento. Esto ocurre cuando cambia de alguna manera el

estado interno de ese objeto. Las fuentes pueden generar más de un tipo de eventos. Una fuente

tiene que ir acompañada de auditores para que estos reciban las notificaciones sobre el tipo

específico de evento, cada tipo de evento tiene su propio método de registro. Un auditor es un

objeto que es avisado cuando ocurre un evento. Tiene dos requisitos principales. Primero tiene

que ser registrado o ir acompañado por una o más fuentes para recibir notificaciones sobre los

tipos específicos de eventos. Segundo, tiene que implementar métodos para recibir y procesar

notificaciones.

Métodos de control de eventos.

Ejemplos de componentes que pueden generar eventos:

Button. Genera eventos de acción (ActionEvent) cuando se

presiona el botón.

Checkbox. Genera eventos de elementos (ItemEvent)

cuando se selecciona o deselecciona un checkbox.

Choice. Genera eventos de elementos cuando se cambia de opción

choice. List. Genera eventos de acción cuando se hace doble click sobre un elemento, genera

eventos de elemento cuando se selecciona o deselecciona un elemento.

Ilustración 4ActionEvent

Page 6: inv unidad 1 topicos avanzados de programacion

5

5

Menu Item. Genera eventos de acción cuando se selecciona un elemento de menú; genera

eventos del elemento cuando se selecciona o se deselecciona un elemento de un menú de

opciones.

Scrollbar. Genera eventos de ajuste

(AdjustmentEvent)

Cuando se manipula el scrollbar.

Text components. Genera eventos de texto

(TextEvent) cuando el usuario introduce un carácter.

Window. Genera eventos de ventana (WindowEvent)

cuando una ventana se activa,

Se cierra, se desactiva, se minimiza, se maximiza

, se abre o se sale de ella.

Ilustración 5Ejemplo de scroll bars

Ilustración 6Ejemplo de ventanas

Page 7: inv unidad 1 topicos avanzados de programacion

6

6

Creación de eventos. Para la creación de eventos es necesario definir sobre que componente se desea crear dicho

evento.

Tabla 3Clases de eventos principales en java.awt.event

Page 8: inv unidad 1 topicos avanzados de programacion

7

7

EJEMPLO DE CREACION DE EVENTOS: Trata de un JPanel donde puse 4 JButon cada que se le aplana a un boton debe de dibujar en el panel central su respectivo dibujo esto gracias a un BorderLayout pude poner los botones en el sur y un panel de dibujo en el centro para poder mandar a llamar cada metodo , en cada boton , necesite una clase privada en la clase de Aplicacion llamada manejadora de action events ala que se le implementa un actionlistener que es el encargado de recibir la accion , guardarla y esperar a que me pida ejecutarla n cada boton

Page 9: inv unidad 1 topicos avanzados de programacion

8

8

Page 10: inv unidad 1 topicos avanzados de programacion

9

9

package practica2;

public class Practica2{

public static void main(String[] args) {

Aplicacion aplicacion=new Aplicacion();

}

}

package practica2;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import javax.swing.JPanel;

public class MiPanel extends JPanel {

String Poligono, Ovalo, Arco, Imagen;

int xPoints[] = new int[4];

int yPoints[] = new int[4];

int x;

int y;

Image img;

int width;

int height;

int startAngle;

Page 11: inv unidad 1 topicos avanzados de programacion

10

10

int arcAngle;

int ancho;

int alto;

public void limpiar() {

x = 0;

y = 0;

img = null;

width = 0;

height = 0;

startAngle = 0;

arcAngle = 0;

ancho = 0;

alto = 0;

xPoints[0] = 0;

xPoints[1] = 0;

xPoints[2] = 0;

xPoints[3] = 0;

yPoints[0] = 0;

yPoints[1] = 0;

yPoints[2] = 0;

yPoints[3] = 0;

}

public MiPanel() {

setBackground(Color.RED);

}

Page 12: inv unidad 1 topicos avanzados de programacion

11

11

void dibujaPol() {

limpiar();

xPoints[0] = getWidth() / 4;

xPoints[1] = (getWidth() / 4) * 3;

xPoints[2] = (getWidth() / 4) * 3;

xPoints[3] = (getWidth() / 4);

yPoints[0] = getHeight() / 4;

yPoints[1] = getHeight() / 4;

yPoints[2] = (getHeight() / 4) * 3;

yPoints[3] = (getHeight() / 4) * 3;

repaint();

}

void dibujaOvalo() {

limpiar();

x = 0;

y = this.getHeight()/4 ;

ancho = this.getWidth();

alto = this.getHeight() / 2;

repaint();

}

void dibujaArco() {

limpiar();

width = 250;

Page 13: inv unidad 1 topicos avanzados de programacion

12

12

height = 200;

startAngle = 65;

arcAngle = 90;

repaint();

}

void dibujaImagen() {

limpiar();

img = Toolkit.getDefaultToolkit().getImage("imagen.jpg");

repaint();

}

@Override

public void paintComponent(Graphics g) {

super.paintComponent(g);

g.fillPolygon(xPoints, yPoints, 4);

g.setColor(Color.ORANGE);

g.fillOval(x,y, ancho,alto);

g.setColor(Color.GREEN);

g.fillArc(this.getWidth() / 2, this.getHeight() / 2, width, height, startAngle, arcAngle);

g.setColor(Color.BLACK);

g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);

}

}

package practica2;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

Page 14: inv unidad 1 topicos avanzados de programacion

13

13

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Aplicacion extends JFrame {

JButton btn1, btn2, btn3, btn4;

JPanel panelBotones;

MiPanel panelDibujo;

public Aplicacion() {

setLayout(new BorderLayout());

ManejadoraActionEvents manejador = new ManejadoraActionEvents();

btn1 = new JButton("Poligono");

btn2 = new JButton("Ovalo");

btn3 = new JButton("Arco");

btn4 = new JButton("Imagen");

btn1.addActionListener(manejador);

btn2.addActionListener(manejador);

btn3.addActionListener(manejador);

btn4.addActionListener(manejador);

panelBotones = new JPanel();

panelBotones.setLayout(new FlowLayout());

panelBotones.add(btn1);

panelBotones.add(btn2);

Page 15: inv unidad 1 topicos avanzados de programacion

14

14

panelBotones.add(btn3);

panelBotones.add(btn4);

add(panelBotones, BorderLayout.SOUTH);

panelDibujo = new MiPanel();

add(panelDibujo, BorderLayout.CENTER);

setSize(500, 300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

private void setLayout(BorderLayout borderLayout) {

}

private class ManejadoraActionEvents implements ActionListener {

@Override

public void actionPerformed(ActionEvent ae) {

if (ae.getSource() == btn1) {

panelDibujo.dibujaPol();

} else if (ae.getSource() == btn2) {

panelDibujo.dibujaOvalo();

} else if (ae.getSource() == btn3) {

panelDibujo.dibujaArco();

} else if (ae.getSource() == btn4) {

panelDibujo.dibujaImagen();

Page 16: inv unidad 1 topicos avanzados de programacion

15

15

}

}

}

}

BIBLIOGRAFIA

• Luis Joyanes Aguilar, Programación En C/C++Java Y Uml, 1, Mcgraw Hill,

México, 2010 • John Dean, Introducción A La Programación Con Java, 1, Mcgraw Hill, México,

2009

•Deitel Y Deitel, C / C++ Y Java Cómo Programar, 4ta Edición, Prentice Hall,

México, 2004

• http://leo.ugr.es/J2ME/TOOLS/index.html