inv unidad 1 topicos avanzados de programacion

Post on 13-Apr-2017

78 views 6 download

Transcript of 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

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

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

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

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

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

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

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

8

8

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;

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);

}

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;

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;

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);

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();

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