La fuente del evento de un evento del mouse a menudo se asocia con un contenedor. El lenguaje Java proporciona dos interfaces para manejar eventos de mouse: MouseListener y MousemotionListener interfaz.
Interfaz mouselistener
La interfaz mouselistener puede manejar 5 tipos de eventos del mouse: presione el mouse, suelte el mouse, haga clic en el mouse, ingrese el mouse y salga del mouse. Los métodos correspondientes son:
(1) getx (): la coordenada x del mouse
(2) gety (): la coordenada y del mouse
(3) GetModifiers (): Obtenga el botón izquierdo o derecho del mouse.
(4) GetClickCount (): El número de veces se hace clic en el mouse.
(5) GetSource (): Obtenga la fuente del evento donde ocurrió el mouse.
(6) AddMouselistener: agregue el monitor.
(7) RemoveMousElistener: retire el monitor.
Los métodos para implementar la interfaz MouseListener son:
(1) mousepressed (mouseevent E);
(2) mouserelacionado (mouseevent E);
(3) MouseEent (mouseevent E);
(4) mouseExited (mouseevent E);
(5) mouseclicked (mouseevent E);
[Ejemplo] El applet establece un área de texto para grabar una serie de eventos de mouse. Cuando el mouse ingresa a la ventana del applet, el área de texto muestra "el mouse entra"; , cuando se presiona el mouse, cuando se hace doble clic, el área de texto muestra "hacer doble clic en el mouse"; y se muestran las coordenadas del mouse. El programa también muestra un círculo rojo, y cuando se hace clic en el mouse, el radio del círculo continuará creciendo.
import java.applet.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; clase myPanel extiende jpanel {public void print (int r) {gráficos g = getGraphics (); G.ClearRect (0,0, this.getWidth (), this.getheight ()); TS MouseListener {JTextArea Text; Abra "," Haga doble clic en el mouse "}; mywindow (string s) {super (s); contenedor con = this.getContentPane (); con.setLayout (nuevo GridLayout (2,1)); this.setsize ( 200,300) addmo uselistener (this); MouseStates [mouseflg]+", la posición es:"+x+","+y+"/n"); = E.gety (); Voi d mouseentered (mouseEvent e) {x = e.getx (); = E.gety (); );
Los eventos del mouse pueden ocurrir en cualquier componente: entrada del mouse, salida del mouse, prensa del mouse, etc. Por ejemplo, agregue un botón al programa anterior y agregue un monitor del mouse al objeto del botón, modifique el método init () en el programa anterior al siguiente formulario, es decir, puede indicar todos los eventos del mouse en el botón.
JButton Button; public void init () {Button = new JButton ("Los eventos del mouse también pueden ocurrir en el botón") botón.
Si el programa desea saber aún más que el botón del mouse izquierdo o derecho se presiona o hace clic, el botón del mouse izquierdo o derecho del mouse puede determinarse por el botón constantes 1_mask y Button3_Mask en la clase In -Putevent. Por ejemplo, la siguiente expresión determina si el botón derecho del mouse ha sido presionado o haciendo clic con el botón derecho:
E.GetModifiers () == InPutevent.
Interfaz MousemotionListener
La interfaz MousemotionListener maneja dos eventos: arrastrar el mouse y mover el mouse.
La forma de registrar un monitor es:
AddMousEmotionListener (monitor)
Hay dos métodos de interfaz para implementar:
(1) MuseedRagged (mouseevent E)
(2) mouseMoved (mouseevent E)
[Ejemplo] Una aplicación que cambia en las barras de desplazamiento sincrónicamente con la ventana de visualización. Hay un cuadrado en la ventana. bar. Por el contrario, si se mueve el control deslizante de la barra de desplazamiento, la posición de visualización del cuadrado en la ventana también cambiará.
import javax.swing.*; import java.awt.*; import java.awt.event.*; class mywindow extiende jframe {public mywindow (string s) {super (s) contiene er con = this.getContentPane (); con .setLayout (new Borderlaut ()); ); , Borderlaut. New Dimension (500,300); int) (((float) x/(float) getSize (). ancho)*100.0); *100.0); ); .FillRect (0,0, size.width, size.Height); ratón eExited (mouseevent e) {} public void mouseClicked (mouseevent e) {} public void Mouserelease (MouseEvent E) {} public void MouseMoved (Mouseevent E) {} public void mo usePressed (mouseEvent e) {x = egetx ( ); y); .Width); Ejemplo6_9 {public static void main () {mywindow mywindow = new mywindow ("programa esquemático de barra de desplazamiento");
En el ejemplo anterior, si solo necesita cambiar la posición de visualización del contenido deslizando el control deslizante, simplemente puede usar el panel de desplazamiento JSCrollPane. Si es así, la creación y el control de las barras de desplazamiento se pueden evitar y son implementados directamente internamente por JSCrollPane. Vea la siguiente definición modificada de mywindow:
La clase MyWindow extiende JFrame {public mywindow (String s) {súper (s); ; () {return New Dimension (400,400);
El programa también puede controlar la forma del puntero del mouse, y el método SetCursor () puede establecer la forma del puntero del mouse. Por ejemplo, el código setCursor (cursor.getPredefinedCursor (cursor.wait_cursor)).