Java in Hindi – Event Handling

  • Introduction to java event handling in Hindi
  • Source and listener classes in Hindi 
  • Adapter classes for java event handling in Hindi 

Introduction to Java Event Handling

एक java program द्वारा user generated events को handle करना java में event handling कहलाता है।

जब आप किसी GUI application को चलाते समय कोई mouse click करते है या किसी menu में से कोई item select करते है या फिर कोई button press करते है तो events generate होते है। आप ऐसे भी कह सकते है की जब भी user कोई action लेता है तो events generate होते है।

Change in Component State

User के action लेने पर components की state में change आता है, जिससे compiler को पता चलता है की event generate हुआ है। आप इन events को अपने यूज़ के लिए handle कर सकते है। आप compiler को बताते है की यूज़र mouse click करे तब क्या करना है और button press करे तब क्या करना है। इसे ही java में event handling कहते है। 

Source & Lister Classes

जिस class में event generate होता है उसे आप source class कहते है। और जो class इस event को handle करती है वह listener होती है।

Listener Interface

एक event generate हुआ है, ये जानने के लिए listener class को listener interface implement करना पड़ता है।

यह उसी प्रकार है जैसे की आपके घर पर कोई आकर bell बजाये। जब वह व्यक्ति bell बजा रहा है तो वह एक event generate कर रहा है। इस event को आप handle करते है और जाकर दरवाजा खोलते है। इस situation में आपके घर आने वाला व्यक्ति source class है, और आप listener class है। और आपने (listener class ने ) अपने घर में bell लगा रखीं है। Bell यँहा पर listener interface है, जो आपने implement किया है।

यँहा पर एक धयान देने योग्य बात ये है की यदि आप bell नहीं लगाते तो आपको पता नहीं चलता की कोई व्यक्ति आया है। यानि की जब तक आप listener interface implement नहीं करते है तो तब तक आपको पता नहीं चलता है की कोई event generate हुआ है।

Different listener Interfaces

अलग अलग events के लिए अलग अलग तरह के listener interfaces मौजूद है, जैसे की mouse से related events के लिए MouseListener और keyboard से related events के लिए KeyListener आदि।

एक listener class जिस तरह के events के बारे में notification चाहती है उस interface को implement करती है। उदाहरण के लिए आप Mouse events के बारे में जानना चाहते है। 

Listener interface implement करने के बाद आप source class में जाकर ये define करते है की जब भी mouse से related कोई event generate हो तो किस class को सूचित किया जाये। ऐसा आप एक method द्वारा करते है।

Adding Listeners

addMouseListener(MouseListener obj) // obj is object of listener class

ये statement जब आप source class में लिखते है, तो source में generate होने वाले सभी mouse related events का notification listener class को मिलता है, और listener class उन events को handle करती है। हर listener interface में उस तरह की जितने भी events possible हो सकते है उन सबके लिए एक method होते है। आप इन methods को override करके हर event को handle कर सकते है।

Methods by Listener Interfaces

जैसे की MouseListener interface 5 तरह के mouse events को handle कर सकता है। ये 5 method निचे दिए जा रहे है। इन सभी methods का यूज़ इनके नाम से ही पता चल जाता है।

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

आइये अब इसे एक उदाहरण से समझने का प्रयास करते है। जैसे की आपको पता है, applets event based program होते है। इस उदाहरण में मैने applets प्रयोग किया है। हालांकि आप AWT या Swing library के साथ भी events को यूज़ कर सकते है।

Example1: Handle mouse events using java 

HTML File
<html> 
<head> 
<title>Event Handling</title> 
</head> 

<applet code="ListenToMe.java" width=300 height=300> 
</applet> 

</html>
Source Java Class
public class ListenToMe extends Applet 
{ 
  public void init() 
  { 
    String msg; 
    YesSpeak ys = new YesSpeak(); 
    addMouseListener(MouseListener ys); //passing listener object 
  } 
 
  public void paint(Graphics g) 
  { 
    g.drawString( msg,30,30); 
  } 
 
} 
Listener Java Class
class YesSpeak implements MouseListener 
{ 
   ListenToMe lm = new ListenToMe(); 
 
   public void mouseClicked(MouseEvent me) 
   { 
     lm.msg = "Mouse was Clicked!!"; 
     repaint(); 
   } 
 
   public void mouseEntered(MouseEvent me) 
   { 
     lm.msg = "Mouse was entered!!"; 
     repaint(); 
   } 
 
   public void mouseExited(MouseEvent me) 
   { 
    lm.msg = "Mouse was exited!!"; 
    repaint(); 
  } 
 
  public void mousePressed(MouseEvent me) 
  { 
    lm.msg = "Mouse was pressed!!"; 
    repaint(); 
  } 
 
  public void mouseReleased(MouseEvent me) 
  { 
    lm.msg = "Mouse was released!!"; 
    repaint(); 
  } 
} 

Adapter Classes

जब आप किसी listener class में कोई listener interface implement करते है, तो आपको उस interface के सभी methods को implement करना पड़ता है। जैसे की आपने पिछले उदाहरण में देखा की mouse listener interface के सभी methods को implement किया गया।

No Need to Implement All Methods

लेकिन ऐसा भी हो सकता है की आप सभी method को implement ना करके किसी एक method को implement करना चाहते हो। ऐसी situation में आप adapter classes को यूज़ कर सकते है। 

हर listener interface के लिए एक adapter class provide की गयी है, जैसे की MouseListener interface के लिए MouseAdapter और KeyListener interface के लिए KeyAdapter आदि।

ये adapter classes उस interface के सभी methods का default implementation provide करती है। आपको सभी methods को implement करने की जरुरत नहीं होती है। जो method आप यूज़ करना चाहते है उसे ही आप override करते है। Adapter classes की मदद से programmers का time बचता है।

Example2: handle event with adapter class

HTML File
<html>
<head>
<title>adapter handling</title>
</head>

<applet code = "ÄdapterCall.java" width=300 height=300>
</applet>

</html>
Source Java Class
public class AdapterCall extends Applet
{
   String msg;

   public void init()
   {
     AdapterReply ar = new AdapterReply();
     addMouseListener (ar);
   }

   public void paint(Graphics G)
   {
     g.drawString(msg,30,30);
   }
}
Listener Java Class
class AdapterReply extends MouseAdapter
{
   AdapterCall ac = new AdapterCall();

   public void mouseClicked(MouseEvent me)
   {
     ac.msg = "mouse was clicked";
     repaint();
   } 
}

Java event handling एक बहुत ही बड़ा topic है, यँहा पर मैने सिर्फ event handling का concept समझाने का प्रयास किया है।

Previous: Java AWT (Abstract Windows Toolkit)
Next: Java Servlets   

2 thoughts on “Java in Hindi – Event Handling”

Comments are closed.