Event Driven Programming in Java: Mastering GUI Interactions
Event Driven Programming in Java: Mastering GUI Interactions
Introduction to Event Driven Programming
जब हम Java में GUI (Graphical User Interface) बनाते हैं, तो user के हर action जैसे button click, mouse movement या key press को handle करने के लिए हमें Event Driven Programming की जरूरत होती है। इस concept का main idea ये है कि program तब तक wait करता है जब तक कोई event trigger नहीं होता, और जैसे ही event होता है, उस event को handle करने के लिए specific code execute होता है।
Simple words में, Event Driven Programming वो programming style है जहाँ control user के हाथ में होता है — जैसे user कुछ करता है (click, select, type), वैसे ही response मिलता है।
What is Event in Java?
Java में “Event” का मतलब है कोई ऐसी activity जो user या system perform करे और जिससे program में response trigger हो। उदाहरण के लिए:
- Button click करना
- Mouse को move करना
- Keyboard key press करना
- Window को close करना
हर event के लिए Java में एक specific class होती है जो उस event की information hold करती है। जैसे:
| Event Type | Event Class |
|---|---|
| Button Click | ActionEvent |
| Mouse Movement | MouseEvent |
| Key Press | KeyEvent |
| Window Closing | WindowEvent |
Event Delegation Model in Java
Java में event को handle करने के लिए “Event Delegation Model” use किया जाता है। इसका मतलब है कि जब कोई event होता है, तो source object event generate करता है और listener object उस event को handle करता है।
Three Main Components of Event Delegation Model
- Event Source: वो object जो event generate करता है (जैसे Button, TextField)।
- Event Object: वो object जिसमें event की details होती हैं (जैसे कौन सा button click हुआ, कौन सी key press हुई)।
- Event Listener: वो interface जो event को handle करता है। Listener method define करता है कि event होने पर क्या action लेना है।
Example:
मान लीजिए हमारे पास एक Button है और user ने उसे click किया। तो Button event source हुआ, click event object में store हुआ और ActionListener उसे handle करेगा।
Types of Event Listeners in Java
Java AWT और Swing में event को handle करने के लिए कई listeners दिए गए हैं। नीचे कुछ important listeners दिए गए हैं:
| Listener Interface | Used For |
|---|---|
| ActionListener | Button click या menu select के लिए |
| ItemListener | Checkbox, radio button change के लिए |
| KeyListener | Keyboard input के लिए |
| MouseListener | Mouse click या movement के लिए |
| WindowListener | Window open, close आदि के लिए |
How to Register a Listener
किसी event को handle करने के लिए हमें उस component पर listener register करना पड़ता है। Java में listener register करने के लिए “add” method use किया जाता है।
उदाहरण के लिए:
Button b = new Button("Click Me");
b.addActionListener(this);
ऊपर दिए गए code में, “b” एक button है और हमने “this” keyword के through current class को ActionListener के रूप में register किया है।
ActionListener Example
अब एक simple example देखें जहाँ button click करने पर message display होता है।
import java.awt.*;
import java.awt.event.*;
public class ButtonExample extends Frame implements ActionListener {
Button b;
ButtonExample() {
b = new Button("Click Me");
b.setBounds(100,100,80,30);
add(b);
b.addActionListener(this);
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 button पर click करेगा, “actionPerformed()” method call होगा और console पर “Button Clicked!” print होगा।
Anonymous Class in Event Handling
अगर हमें short और clean code लिखना है, तो हम anonymous class का use करके listener define कर सकते हैं। इससे हमें अलग class बनाने की जरूरत नहीं पड़ती।
Button b = new Button("Click Here");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Clicked using anonymous class");
}
});
यह approach छोटे GUI applications में काफी useful होती है क्योंकि इससे readability और simplicity बढ़ जाती है।
Mouse and Key Events
Mouse Events:
Mouse events तब trigger होते हैं जब user mouse click करता है, drag करता है या move करता है। MouseListener interface में ये important methods होते हैं:
- mouseClicked()
- mouseEntered()
- mouseExited()
- mousePressed()
- mouseReleased()
Example:
public void mouseClicked(MouseEvent e) {
System.out.println("Mouse Clicked at: " + e.getX() + "," + e.getY());
}
Key Events:
KeyListener का use तब होता है जब user keyboard पर कोई key press या release करता है।
- keyPressed()
- keyReleased()
- keyTyped()
public void keyPressed(KeyEvent e) {
System.out.println("Key Pressed: " + e.getKeyChar());
}
Window और Item Events
WindowListener:
WindowListener का use window के open, close या minimize होने पर किया जाता है। जैसे ही window close होती है, windowClosing() method call होता है।
public void windowClosing(WindowEvent e) {
System.exit(0);
}
ItemListener:
ItemListener का use checkbox या choice change होने पर होता है।
public void itemStateChanged(ItemEvent e) {
System.out.println("Item Changed");
}
Advantages of Event Driven Programming
- User-friendly interface बनाना आसान होता है।
- Code modular और maintainable रहता है।
- Different events को अलग-अलग handle किया जा सकता है।
- Program interactive और responsive बनता है।
Real Life Example of Event Driven Programming
सोचिए आप किसी ATM machine पर गए हैं। जैसे ही आप card insert करते हैं — एक event trigger होता है। PIN डालते हैं — दूसरा event होता है। “Withdraw” button दबाते हैं — फिर event। हर event पर specific response मिलता है। Java GUI भी इसी principle पर काम करता है।
Summary Table
| Component | Listener Interface | Method |
|---|---|---|
| Button | ActionListener | actionPerformed() |
| Checkbox | ItemListener | itemStateChanged() |
| Keyboard | KeyListener | keyPressed(), keyReleased(), keyTyped() |
| Mouse | MouseListener | mouseClicked(), mouseEntered() |
| Window | WindowListener | windowClosing(), windowOpened() |
Notes for Exam Preparation
- Event Driven Programming Java के GUI system की backbone है।
- हर event के लिए separate listener interface होता है।
- ActionListener सबसे ज़्यादा use किया जाने वाला listener है।
- “Event Source → Event Object → Event Listener” model को याद रखो।
- Anonymous class का use छोटे programs में helpful होता है।
- Window closing handle करने के लिए
System.exit(0)ज़रूर use करो। - हर listener interface में multiple methods हो सकते हैं — जरूरी नहीं कि सबको override करो (Adapter classes help करती हैं)।
Important Keywords for Quick Revision
- Event Delegation Model
- ActionListener
- MouseListener
- KeyEvent
- WindowEvent
- Anonymous Class
- AWT & Swing Event Handling