Mouse as an input device can generate major 8 events. Among those 8 events below 5 of them can be handled by MouseListener, 1 is handled by MouseWheelListener and rest can be handled using MouseMotionListener.

MouseListener Interface

As per the event delegation model we are going to implement this interface in our class. MouseListener consists of 5 methods which are as below.

  1. public void mouseClicked(MouseEvent e)
  2. public void mouseEntered(MouseEvent e)
  3. public void mouseExited(MouseEvent e)
  4. public void mousePressed(MouseEvent e)
  5. public void mouseReleased(MouseEvent e)

To add MouseListener on whole applet area the syntax will be: this.addMouseListener(this);
In above line 1st “this” stands for current class on which we would like to handle the Mouse related events. And 2nd “this” is the object of current class which has implemented MouseListener and defined all the methods. For further reference you can refer my article on Event Handling Methodologies.

To manually invoke paint(Graphics) method: we can call repaint(). This will internally create object of java.awt.Graphics and call paint(Graphics) internally.

Program:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class AppletMouseEvents extends Applet implements MouseListener
{
	String msg = "";
	int mouseX = 0, mouseY = 0; 
	public void init() 
	{
		this.addMouseListener(this);
	}
	public void mouseClicked(MouseEvent me) 
	{
		mouseX = me.getX();
		mouseY = me.getY();
		msg = "Mouse clicked.";
		repaint();
	}
	public void mouseEntered(MouseEvent me) 
	{
		mouseX = me.getX();
		mouseY = me.getY();
		msg = "Mouse entered.";
		repaint();
	}
	public void mouseExited(MouseEvent me) 
	{
		mouseX = me.getX();
		mouseY = me.getY();
		msg = "Mouse exited.";
		repaint();
	}
	public void mousePressed(MouseEvent me) 
	{
		mouseX = me.getX();
		mouseY = me.getY();
		msg = "Down";
		repaint();
	}
	public void mouseReleased(MouseEvent me) 
	{
		mouseX = me.getX();
		mouseY = me.getY();
		msg = "Up";
		repaint();
	}
	
	public void paint(Graphics g) 
	{
		g.drawString(msg, mouseX, mouseY);
	}
}
/*
<applet code="AppletMouseEvents" width="300" height="300"></applet>
*/