Online-Academy

Look, Read, Understand, Apply

Menu

MouseListener

MouseListener interface handles mouse events. Whenever state of mouse is changed, that mouse is clicked, entered or existed from some region or some component, mouse is realesed, or mous is pressed, MouseListener is notified about the change and MouseListener handles that event. This interface has five methods:

  • public abstract void mouseClicked(MouseEvent e)
  • public abstract void mouseEntered(MouseEvent e)
  • public abstract void mouseExited(MouseEvent e)
  • public abstract void mousePressed(MouseEvent e)
  • public abstract void mouseReleased(MouseEvent e)

Example

Methods getX() and getY() of the object MouseEvent returns X and Y coordinates of the mouse.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class mouse_events extends JFrame implements MouseListener{
		public mouse_events(){
		setLayout(null);
		setLocationRelativeTo(null);
		setTitle("Edit - JTable");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(350,400);
		setVisible(true);
		
		add(btn);
		this.addMouseListener(this);//this references object of mouse_event class
	}
	public void mouseClicked(MouseEvent e){
		btn.setBounds(e.getX(),e.getY(),100,20);
		this.setTitle("Mouse Clicked!!!");
		repaint();
	}
	public void mouseExited(MouseEvent e){}
	public void mouseEntered(MouseEvent e){
		this.setTitle("Mouse Entered!!!");
	}
	public void mouseReleased(MouseEvent e){}
	public void mousePressed(MouseEvent e){
		this.setTitle("Mouse Pressed!!!");
	}
	public static void main(String[] args){
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				new mouse_events();
			}
		});
	}
}

MouseListener

MouseListener interface handles mouse events. Whenever state of mouse is changed, that mouse is clicked, entered or existed from some region or some component, mouse is realesed, or mous is pressed, MouseListener is notified about the change and MouseListener handles that event. This interface has five methods:

  • public abstract void mouseClicked(MouseEvent e)
  • public abstract void mouseEntered(MouseEvent e)
  • public abstract void mouseExited(MouseEvent e)
  • public abstract void mousePressed(MouseEvent e)
  • public abstract void mouseReleased(MouseEvent e)

Example

Methods getX() and getY() of the object MouseEvent returns X and Y coordinates of the mouse.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*; 	
class m_event extends JFrame implements MouseListener{
	JButton btn;
	JLabel lbl;
	public m_event(){
		setLayout(null);
		setLocationRelativeTo(null);
		setTitle("Mouse - Event");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(350,400);
		setVisible(true);
		btn = new JButton("I used to move");
		btn.setBounds(0,0,100,22);
		add(btn);
		this.addMouseListener(this);//container--> m_event object 
		btn.addMouseListener(this);//button is having mouselistener
		lbl = new JLabel("Output");
		lbl.setBounds(0,30,100,22);
		add(lbl);
	}

	public void mouseClicked(MouseEvent me){
		
		if(me.getSource()==btn){
			lbl.setText("Button clicked");
		}else {
			lbl.setText("Container Clicked");
		}
		
	}	
	public void mousePressed(MouseEvent me){
	}
	public void mouseEntered(MouseEvent me){
	}
	public void mouseReleased(MouseEvent me){}
	public void mouseExited(MouseEvent me){}
	public static void main(String[] owl_de_){
		new m_event();
	}
}

Example

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class mouse_signal extends JFrame implements MouseListener{
	JTextField jtf;
	JLabel lbl;
	public mouse_signal(){
		setLayout(null);
		setLocationRelativeTo(null);
		setTitle("Mouse - Event");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(350,400);
		setVisible(true);
		jtf = new JTextField();
		jtf.setBounds(20,20,100,22);
		lbl = new JLabel("Output");
		lbl.setBounds(20,40,100,22);
		add(jtf);
		add(lbl);
		jtf.addMouseListener(this);
		this.addMouseListener(this);
	}
	public void mouseClicked(MouseEvent me){
		if(me.getSource()==jtf)
		jtf.setText("somethings");
		else if(me.getSource()==this)setTitle("I am clicked!!!");
	}	
	public void mousePressed(MouseEvent me){}
	public void mouseEntered(MouseEvent me){}
	public void mouseReleased(MouseEvent me){
		lbl.setText(""+jtf.getText());
	}
	public void mouseExited(MouseEvent me){
		lbl.setText("X coord:"+me.getX()+" Y coord:"+me.getY());
		lbl.setBounds(me.getX(),me.getY(),200,22);
	}
	public static void main(String[] mmmouse){
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				new mouse_signal();
			}
		}) ;
	}
}

Mouse Adapter:

Adapter is a class which helps two different kind of interfaces to communicate with each other. MouseListener interface has five methods; a class implementing MouseListener may not need to define all those five methods, in that case Adapter can be created which implements MouseAdapter and the class will extend that Adapter. There is no need for that class to define all the methods of MouseListener interface; it is sufficient for the class to define only those methods which it need.

Java has inbuilt mouseAdapter. We can define our own adapter also. The given program shows how to create adapter and how to use inbuilt MouseAdapter

Example

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

class abc implements MouseListener{
public void mouseClicked(MouseEvent me){}
public void mouseReleased(MouseEvent me){}
public void mouseEntered(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mousePressed(MouseEvent me){}
}

class abc_mouse extends abc{
	JFrame f;
	JButton btn;
	public abc_mouse(){
		f = new JFrame();
		f.setSize(200,300);
		f.setVisible(true);
		f.setLayout(new FlowLayout());
		btn = new JButton("Hello Me");
		f.add(btn);
		btn.addMouseListener(this);
	}
	public void mouseEntered(MouseEvent mmmm){
		btn.setText("Mouse AAyyoo");
		f.setSize(400,500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setBackground(Color.yellow);
	}
	public static void main(String[] args){
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				new abc_mouse();
			}
		}) ;
	}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; 	

class mouse_adapter extends MouseAdapter{
	JButton btn;
	JFrame f; 
	public mouse_adapter(){
		f = new JFrame();
		f.setSize(300,300);
		f.setLocationRelativeTo(null);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setTitle("Mouse Adapter");
		f.setVisible(true);
		f.setLayout(new FlowLayout());
		btn = new JButton("Mousee");
		f.add(btn);
		btn.addMouseListener(this);
	}
	public void mouseClicked(MouseEvent me){
		btn.setText("Hello Mousee");
	}
	public static void main(String[] aaa){
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
			new mouse_adapter();	
			}
		});
	}
}