Feedback Form

Implementing Listeners: Action, Mouse, Key, Window, and Custom Events

Implementing Listeners: Action, Mouse, Key, Window, and Custom Events

Introduction

Java में Event Handling एक बहुत ही important concept है, खासकर जब हम GUI (Graphical User Interface) applications जैसे AWT या Swing बनाते हैं। Event Handling का मतलब है किसी specific user action (जैसे button click, mouse move, key press, window close आदि) पर response देना।

इन events को handle करने के लिए Java में Event Listeners का use किया जाता है। जब कोई event होता है, तो listener उस event को “listen” करके उस पर action perform करता है।

What is a Listener in Java?

Listener Java का वो interface होता है जो किसी particular event को सुनता है और उस पर react करता है। जब कोई event होता है (जैसे mouse click या key press), Java automatically उस listener की method को call कर देता है।

Example के लिए, अगर user ने button click किया, तो ActionListener की actionPerformed() method call होती है।

Types of Listeners in Java

Java में कई तरह के listeners होते हैं, लेकिन यहाँ हम पाँच main listeners को detail में समझेंगे:

  • Action Listener
  • Mouse Listener
  • Key Listener
  • Window Listener
  • Custom Listener

1. Action Listener

ActionListener का use किसी button click या menu selection जैसे actions को handle करने के लिए किया जाता है।

Interface और Method

ActionListener interface java.awt.event package में होता है और इसमें एक method होती है:

public void actionPerformed(ActionEvent e);

Implementation Example

नीचे एक simple example दिया गया है जो दिखाता है कि कैसे button click event को handle किया जाता है:

import java.awt.*;
import java.awt.event.*;
class ButtonExample extends Frame implements ActionListener {
Button b;
ButtonExample() {
b = new Button("Click Me");
b.setBounds(100,100,80,30);
b.addActionListener(this);
add(b);
setSize(300,300);
setLayout(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
System.out.println("Button Clicked!");
}
public static void main(String args[]) {
new ButtonExample();
}
}

यहाँ जब user “Click Me” button पर click करता है, तो actionPerformed() method call होती है और console पर message print होता है।

2. Mouse Listener

MouseListener का use mouse के actions जैसे click, enter, exit, press या release को detect करने के लिए किया जाता है।

Interface और Methods

MouseListener interface में पाँच methods होती हैं:

  • mouseClicked(MouseEvent e)
  • mousePressed(MouseEvent e)
  • mouseReleased(MouseEvent e)
  • mouseEntered(MouseEvent e)
  • mouseExited(MouseEvent e)

Example

import java.awt.*;
import java.awt.event.*;
class MouseExample extends Frame implements MouseListener {
MouseExample() {
addMouseListener(this);
setSize(400,400);
setLayout(null);
setVisible(true);
}
public void mouseClicked(MouseEvent e) {
System.out.println("Mouse Clicked");
}
public void mouseEntered(MouseEvent e) {
System.out.println("Mouse Entered");
}
public void mouseExited(MouseEvent e) {
System.out.println("Mouse Exited");
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public static void main(String args[]) {
new MouseExample();
}
}

यह code हर बार mouse के enter या exit होने पर एक message print करेगा।

3. Key Listener

KeyListener का use keyboard events को handle करने के लिए किया जाता है, जैसे key press, key release, या key typing।

Interface और Methods

  • keyPressed(KeyEvent e)
  • keyReleased(KeyEvent e)
  • keyTyped(KeyEvent e)

Example

import java.awt.*;
import java.awt.event.*;
class KeyExample extends Frame implements KeyListener {
TextField tf;
KeyExample() {
tf = new TextField();
tf.setBounds(100,100,150,30);
tf.addKeyListener(this);
add(tf);
setSize(300,300);
setLayout(null);
setVisible(true);
}
public void keyTyped(KeyEvent e) {
System.out.println("Key Typed: " + e.getKeyChar());
}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
public static void main(String args[]) {
new KeyExample();
}
}

जब user कोई key दबाता है, तो keyTyped() method call होती है और वो character console में print होता है।

4. Window Listener

WindowListener का use window के events (जैसे open, close, minimize, maximize) को handle करने के लिए किया जाता है।

Interface और Methods

WindowListener interface में सात methods होती हैं:

  • windowOpened(WindowEvent e)
  • windowClosing(WindowEvent e)
  • windowClosed(WindowEvent e)
  • windowIconified(WindowEvent e)
  • windowDeiconified(WindowEvent e)
  • windowActivated(WindowEvent e)
  • windowDeactivated(WindowEvent e)

Example

import java.awt.*;
import java.awt.event.*;
class WindowExample extends Frame implements WindowListener {
WindowExample() {
addWindowListener(this);
setSize(400,400);
setLayout(null);
setVisible(true);
}
public void windowClosing(WindowEvent e) {
System.out.println("Window Closing...");
dispose();
}
public void windowOpened(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public static void main(String args[]) {
new WindowExample();
}
}

इस example में जब user window बंद करता है, तो console में “Window Closing...” print होता है और frame close हो जाता है।

5. Custom Listener

कई बार हमें अपने खुद के events और listeners बनाने पड़ते हैं। ऐसे listeners को Custom Listeners कहा जाता है।

Custom listener बनाना बहुत आसान है — बस एक interface बनाओ, उसमें event methods define करो और फिर उसे किसी class में implement करो।

Example: Custom Event

// Step 1: Define custom listener interface
interface MyListener {
void onDataReceived(String data);
}

// Step 2: Event source class
class EventSource {
private MyListener listener;
public void setMyListener(MyListener l) { listener = l; }
public void sendData() {
if(listener != null) listener.onDataReceived("Hello from EventSource!");
}
}

// Step 3: Main class implementing listener
public class CustomListenerExample implements MyListener {
public void onDataReceived(String data) {
System.out.println("Received Data: " + data);
}
public static void main(String args[]) {
CustomListenerExample obj = new CustomListenerExample();
EventSource source = new EventSource();
source.setMyListener(obj);
source.sendData();
}
}

इस code में हमने खुद का event बनाया है जो custom message भेजता है और listener उसे receive करके print करता है।

Comparison Table of Listeners

Listener Type Used For Main Method
ActionListener Button click, menu selection actionPerformed()
MouseListener Mouse click, enter, exit mouseClicked(), mouseEntered()
KeyListener Keyboard input detection keyTyped(), keyPressed()
WindowListener Window open, close, minimize windowClosing(), windowOpened()
Custom Listener User-defined custom events User-defined methods

Important Points to Remember

  • हर listener एक specific event को handle करता है।
  • Event handling के लिए event source और listener दोनों जरूरी होते हैं।
  • Anonymous classes और lambda expressions से event handling को छोटा और clean बनाया जा सकता है।
  • Swing components जैसे JButton, JTextField, JFrame में भी यही listeners काम करते हैं।

Real-Life Analogy

Event handling को ऐसे समझो — जब कोई doorbell बजाता है, वो एक “event” है। Bell सुनने वाला इंसान एक “listener” है। जैसे ही bell बजती है, listener door खोलकर “action” perform करता है। यही concept Java event model में लागू होता है।

Short Notes for Exam

  • ActionListener: Handles button click events using actionPerformed().
  • MouseListener: Detects mouse actions like click, enter, exit.
  • KeyListener: Responds to keyboard events.
  • WindowListener: Manages window-level events like closing or minimizing.
  • Custom Listener: Used when predefined events are not sufficient; user defines custom interface.

Exam Tip

Exam में अक्सर पूछा जाता है — “Explain any two event listeners with example.” तो हमेशा interface का नाम, उसकी main method और एक simple example याद रखो। अगर possible हो तो event source (button, text field, window) भी mention करो।