public void mousepressed(mouseevent evento) Se llama cuando se oprime un botón del ratón, mientras el cursor del ratón está sobre un componente.

Documentos relacionados
Introducción a la Programación Orientada a Objetos

Programación interactiva. Oscar Bedoya

Programa educativo Academia NOMBRE DE LA ASIGNATURA CLAVE DE LA ASIGNATURA PLAN DE ESTUDIOS. Paradigmas de programación IT0427 IT2010

Tema 6. Interfaces gráficas de usuario (Parte II Componentes y eventos)

Interacción con el Usuario Gestión de Eventos

Java es un lenguaje orientado a objetos, por lo que los objetos (las clases) son los elementos más importantes en el diseño y desarrollo de una

JAVA 6. Gestión de Eventos

EVENTOS en Java generador de un evento gestor de eventos

Programa educativo Academia NOMBRE DE LA ASIGNATURA CLAVE DE LA ASIGNATURA PLAN DE ESTUDIOS PARADIGAMAS DE PROGRAMACIÓN IT0427 IT2010

INF 473 Desarrollo de Aplicaciones en Java

Manejo de eventos AWT

Programación Java Curso C GUI

Desarrollo de Aplicaciones en Java INF 473

III SEMANAS GESTIÓN DE EVENTOS PROGRAMACIÓN II CICLO. Ing. Manuel Jesús Sánchez Chero Profesor del Curso

Este capítulo cubre aspectos del siguiente objetivo del examen de certificación de Java:

Programación de Eventos

Programación Orientada a Objetos. Componentes Gráficos

Pasos requeridos para establecer el manejo de eventos para un componente de GUI.

Intefaces gráficas. Eventos. Jose Jesus García Rueda

// Suma.java // Programa de suma que utiliza a JOptionPane para entrada y salida. import javax.swing.joptionpane; // el programa usa JOptionPane

Clase 35. Aprendizaje activo: Uso de hilos para crear una animación. Hilos y Swing

Programación orientada a objetos. Capítulo 11 Construir interfaces gráficas de usuarios

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

import java.applet.*; import java.awt.*; import java.awt.event.*;

Topicos GUI Avanzados

Tipos de programas en Java. Programación basada en eventos. Programación basada en eventos. Creación de una interfaz gráfico de usuario

2016 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA

Interfaces gráficas. Jose Jesus García Rueda

Interfaces gráficas de usuario

Componentes Swing. Las clases cuyo nombre comienza por J forman parte de Swing. Todas las demás están incluidas en AWT (Abstract Window Toolkit)

Indice. CardLayout. Administradores de diseño avanzados. CardLayout: pasos. CardLayout: métodos. Interfaz Gráfica de Usuario (GUI)

Utiliza el mismo modelo empleado por Graphics Para usarlo. java.awt.geom formas primitivas

Programación de sistemas

INTERFAZ GRÁFICO DE USUARIO EVENTOS

GUI. Gráficos. Contextos Gráficos y objetos de Gráficos

d) Mencione dos diferencias y dos semejanzas entre clases abstractas e interfaces.

Interfaces Gráficas de Usuario en Java Julio Introducción. 2. Crear una ventana 2

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Interfaces gráficas con Swing

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

Interfaces gráficas en Java GUIs Graphical User Interface

ALGORITMICA Y PROGRAMACION POR OBJETOS I

Java Foundation Classes -JFC-

Desarrollo de Aplicaciones en Java INF 473

INSTRUCCIÓN PEDIR EN JAVA CON JTEXTAREA Y MOSTRAR CON JLABEL. SETBOUNDS Y SETTEXT. EJEMPLOS. (CU00929C)

Programación Conducida por eventos Event driven programming. Agustín J. González ELO329/ELO330

AWT y Swing. Entorno gráfico:awt y Swing. Soporte Java para el desarrollo de interface gráfica. AWT y Swing. AWT y Swing.

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

PROGRAMACIÓN II INTERFACES GRÁFICAS DE USUARIO. Otoño de 2017 BUAP-FCC DR. MARIO ROSSAINZ LÓPEZ

Programación basada en eventos Event- Based Programming : Conceptos. ELO329: Diseño y Programación Orientados a Objetos

Agenda. Contenedores y componentes

Programación basada en/dirigida por eventos Event-Based Programming : Conceptos (o Event-driven Programming)

Interfaces Gráficas de Usuario Curso 04/05. Tema 5. Departament d Informàtica. Universitat de València. 1. Programación dirigida por eventos 4

Desarrollo de aplicaciones gráficas

Uso de Java Swing. Noviembre de 2013

Programación de sistemas

1.00 Clase 17. Introducción a la API de gráficos 2D de Java. Anuncios. Boletín de problemas 5: compruebe la web

Construir una Interfaz Gráfica

Programación Basada en Eventos

1 Avance del proyecto para Teoría de la Computación

Creando archivos *.jar 2008

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

INTERFAZ GRÁFICO DE USUARIO

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

Programación de sistemas

Tema 6. Interfaces gráficas de usuario (Parte 1)

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

Tema 7. Construcción de Applets en Java

Tópicos Avanzados de Programación (TAP3501)

Interfaces gráficas de usuario

1 AVANCE DEL PROYECTO PARA TEORIA DE LA COMPUTACION NOMBRE DEL PROYECTO: SIMULADOR DE AUTOMATAS FINITOS (SAF) OBJETIVO:

Tema 8: Gestión de eventos

Programación Orientada a Objetos

GESTIÓN DE EVENTOS GUI EN JAVA 13/04/2007 DAI. Evento: Objeto que describe qué sucede

Programación Java Curso C Draw

2.1 Elementos gráficos en Java.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

INTERFACES GRÁFICAS. Algoritmia y Programación

Capítulo 6: Interfaces es de Usuario.

Tópicos Avanzados de Programación (TAP3501)

Ingeniería del Software Separación entre Presentación y Lógica del Negocio

18. Interfaces Declaración de una interfaz

import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*;

Introducción a las Interfaces Gráficas de Usuario en Java

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

Introducción a componentes Swing

Diseño y Programación Orientados a Objetos 29 de Abril de Primer Certamen

IMPLEMENTACIÓN DEL JUEGO DEL AJEDREZ

Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC)

EJERCITACIÓN JAVA CÁTEDRA DE LENGUAJES ORIENTADOS A OBJETOS. Ing. Mario Bressano & Luciano Diamand ENVÍO RESUELTO 05

Práctica 4. Interfaces Gráficas de Usuario Duración 1 sesión

Instrucción de selección múltiple switch.

Unidad 10. Polimorfismo

Curso Informática Lección 2. Introducción a la programación en Java

UNIDAD I.- Elementos de Interfaces Gráficas

UNIDAD III.- Programación Concurrente

INTERFAZ GRÁFICO DE USUARIO

Examen de Programación II (Ingeniería Informática)

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN

Transcripción:

GUI Manejo de eventos de ratón Para manejar eventos de ratón debe implementarse los métodos de las interfaces de escucha de eventos MouseListener y MouseMotionListener. Estos eventos pueden atraparse para cualquier componente de la GUI que derive de java.awt.component. A continuación se muestran los métodos de las interfaces: Métodos de la interface MouseListener public void mousepressed(mouseevent evento) Se llama cuando se oprime un botón del ratón, mientras el cursor del ratón está sobre un componente. public void mouseclicked(mouseevent evento) Se llama cuando se oprime y suelta un botón del ratón, mientras el cursor del ratón permanece estacionario sobre un componente. public void mousereleased(mouseevent evento) Se llama cuando se suelta un botón del ratón después de ser oprimido. Este evento siempre sigue después de un evento mousepressed. public void mouseentered(mouseevent evento) Se llama cuando el botón del ratón entra a los límites de un componente. public void mouseexited(mouseevent evento) Se llama cuando el cursor del ratón sale de los límites de un componente. Métodos de la interface MouseMotionListener public void mousedragged(mouseevent evento) Se llama cuando el botón del ratón se oprime mientras el cursor del ratón se encuentra sobre un componente y se mueve mientras el botón sigue oprimido. Este evento siempre sigue después de una llamada a mousepressed. Todos los eventos de arrastre del ratón se envían al componente en el cual empezó la acción de arrastre. public void mousemoved(mouseevent evento) Se llama al moverse el ratón cuando su cursor se encuentra sobre un componente. Todos los eventos de movimiento se envían al componente sobre el cual se encuentra el ratón posicionado en ese momento. Objeto MouseEvent Cada uno de los manejadores de eventos de ratón toma un objeto MouseEvent como su argumento. Un objeto MouseEvent contiene información acerca del evento de ratón que ocurrió, incluyendo las coordenadas x e y de la ubicación en donde ocurrió el evento. Ejemplo que demuestra la implementación de las interfaces MouseListener y MouseMotionListener

// Fig. 13.17: RastreadorRaton.java // Demostración de los eventos de ratón. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class RastreadorRaton extends JFrame implements MouseListener, MouseMotionListener private JLabel barraestado; // configurar GUI y registrar manejadores de eventos de ratón public RastreadorRaton() super( "Demostración de los eventos de ratón" ); barraestado = new JLabel(); getcontentpane().add( barraestado, BorderLayout.SOUTH ); addmouselistener( this ); // escucha sus propios eventos de ratón addmousemotionlistener( this ); // y de movimiento de ratón setsize( 300, 125 ); setvisible( true ); // Manejadores de eventos de MouseListener // manejar el evento cuando el botón del ratón se suelta inmediatamente después de oprimir public void mouseclicked( MouseEvent evento ) barraestado.settext( "Se hizo clic en [" + evento.getx() + // manejar evento cuando se oprime el botón del ratón public void mousepressed( MouseEvent evento ) barraestado.settext( "Se oprimió en [" + evento.getx() + // manejar evento cuando se suelta el ratón después de arrastrar public void mousereleased( MouseEvent evento ) barraestado.settext( "Se soltó en [" + evento.getx() +

// manejar el evento cuando el ratón entra al área public void mouseentered( MouseEvent evento ) barraestado.settext( "Ratón entro en [" + evento.getx() + getcontentpane().setbackground( Color.GREEN ); // manejar evento cuando el ratón sale del área public void mouseexited( MouseEvent evento ) barraestado.settext( "Ratón fuera de la ventana" ); getcontentpane().setbackground( Color.WHITE ); // Manejadores de eventos de MouseMotionListener // manejar el evento cuando el usuario arrastra el ratón con el botón oprimido public void mousedragged( MouseEvent evento ) barraestado.settext( "Se arrastró en [" + evento.getx() + // manejar el evento cuando el usuario mueve el ratón public void mousemoved( MouseEvent evento ) barraestado.settext( "Se movió en [" + evento.getx() + public static void main( String args[] ) RastreadorRaton aplicacion = new RastreadorRaton(); aplicacion.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); // fin de la clase RastreadorRaton /************************************************************************** * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and * * Prentice Hall. All Rights Reserved. * *************************************************************************/ Uso de clases internas Ejemplo de uso de una clase interna que maneja los eventos de ItemListener

// Fig. 13.11: PruebaCasillaVerificacion.java // Creación de botones JCheckBox. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PruebaCasillaVerificacion extends JFrame private JTextField campo; private JCheckBox negrita, cursiva; // configurar GUI public PruebaCasillaVerificacion() super( "Prueba de JCheckBox" ); // obtener panel de contenido y establecer su esquema Container contenedor = getcontentpane(); contenedor.setlayout( new FlowLayout() ); // configurar objeto JTextField y establecer su tipo de letra campo = new JTextField( "Observe el cambio en el estilo de tipo de letra", 25 ); campo.setfont( new Font( "Serif", Font.PLAIN, 14 ) ); contenedor.add( campo ); // crear objetos casilla de verificación negrita = new JCheckBox( "Negrita" ); contenedor.add( negrita ); cursiva = new JCheckBox( "Cursiva" ); contenedor.add( cursiva ); // registrar componentes de escucha para los objetos JCheckBox ManejadorCasillaVerificacion manejador = new ManejadorCasillaVerificacion(); negrita.additemlistener( manejador ); cursiva.additemlistener( manejador ); setsize( 300, 100 ); setvisible( true ); // fin del constructor de PruebaCasillaVerificacion public static void main( String args[] ) PruebaCasillaVerificacion aplicacion = new PruebaCasillaVerificacion(); aplicacion.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE );

// clase interna privada para manejo de eventos de ItemListener private class ManejadorCasillaVerificacion implements ItemListener private int valnegrita = Font.PLAIN; private int valcursiva = Font.PLAIN; // responder a eventos de casilla de verificación public void itemstatechanged( ItemEvent evento ) // procesar eventos de casilla de verificación negrita if ( evento.getsource() == negrita ) valnegrita = negrita.isselected()? Font.BOLD : Font.PLAIN; // procesar eventos de casilla de verificación cursiva if ( evento.getsource() == cursiva ) valcursiva = cursiva.isselected()? Font.ITALIC : Font.PLAIN; // establecer tipo de letra del campo de texto campo.setfont( new Font( "Serif", valnegrita + valcursiva, 14 ) ); // fin del método itemstatechanged // fin de la clase interna privada ManejadorCasillaVerificacion // fin de la clase PruebaCasillaVerificacion /************************************************************************** * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and * * Prentice Hall. All Rights Reserved. *************************************************************************/ Clases Adaptadoras para implementar manejadores de eventos Muchas de las interfaces de escucha de eventos proporcionan varios métodos, MouseListener y MouseMotionListener son dos ejemplos. No siempre es deseable declarar todos los métodos de una interfaz de escucha de eventos. Por ejemplo un programa podría necesitar solamente el manejador mouseclicked de la interfaz MouseListener. Para muchas de las interfaces de escucha de eventos que contienen varios métodos, el paquete java.awt.event y el paquete java.swing.event proporciona clases adaptadoras de escucha de eventos. Una clase adaptadora implementa una interfaz y proporciona una implementación predeterminada(con un cuerpo vacío para los métodos) de todos los métodos en la interfaz. El programador puede extender la clase adaptadora para heredar la implementación predeterminada de cada método y, por ende sobrescribir el (los) métodos necesarios para el manejo de eventos. Ejemplo de uso de una clase adaptadora que maneja eventos de MouseListener // Fig. 13.20: DetallesRaton.java

// Demostración de los clics de ratón y cómo diferenciar entre los botones del ratón. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DetallesRaton extends JFrame private int xpos, ypos; // establecer cadena barra título; registrar escucha ratón; ajustar tamaño y mostrar ventana public DetallesRaton() super( "Clics y botones del ratón" ); addmouselistener( new ManejadorClicsRaton() ); setsize( 350, 150 ); setvisible( true ); // dibujar objeto String en la ubicación donde se hizo clic con el ratón public void paint( Graphics g ) // llamar al método paint de la superclase super.paint( g ); g.drawstring( "Se hizo clic en: [" + xpos + ", " + ypos + "]", xpos, ypos ); public static void main( String args[] ) DetallesRaton aplicacion = new DetallesRaton(); aplicacion.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); // clase interna para manejar eventos de ratón private class ManejadorClicsRaton extends MouseAdapter // manejar evento de clic del ratón y determinar cuál botón se oprimió public void mouseclicked( MouseEvent evento ) xpos = evento.getx(); ypos = evento.gety(); String titulo = "Se hizo clic " + evento.getclickcount() + " Veces";

if ( evento.ismetadown() ) // botón derecho del ratón titulo += " con el botón derecho del ratón"; else if ( evento.isaltdown() ) // botón de en medio del ratón titulo += " con el botón central del ratón"; else // botón izquierdo del ratón titulo += " con el botón izquierdo del ratón"; settitle( titulo ); // establecer barra de título de la ventana repaint(); // fin del método mouseclicked // fin de la clase interna privada ManejadorClicsRaton // fin de la clase DetallesRaton /************************************************************************** * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and * * Prentice Hall. All Rights Reserved. *************************************************************************/ A continuación se muestran varias clases adaptadoras de java.awt.event y las interfaces que implementan. Clase adaptadora de eventos ComponentAdapter ContainerAdapter FocusAdapter KeyAdapter MouseAdapter MouseMotionAdapter WindowAdapter Implementa a la interfaz ComponentListener ContainerListener FocusListener KeyListener MouseListener MouseMotionListener WindowListener Enlaces de interés 1. public abstract class MouseAdapter extends Object implements MouseListener. http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/mouseadapter.html 2. How to Write a Mouse Listener. http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html