AWT (Abstract Window Toolkit)-এ Event Sources এবং Event Listeners হল GUI অ্যাপ্লিকেশন তৈরির সময় ইভেন্ট হ্যান্ডলিং এর দুটি গুরুত্বপূর্ণ ধারণা।
1. Event Sources (ইভেন্ট সোর্স)
ইভেন্ট সোর্স হল সেই কম্পোনেন্টগুলি যা থেকে ইভেন্ট শুরু হয়। AWT-এর বিভিন্ন কম্পোনেন্ট (যেমন বাটন, টেক্সট ফিল্ড, মাউস, কীবোর্ড ইত্যাদি) ইভেন্ট সোর্স হিসেবে কাজ করে। যখন ব্যবহারকারী কোন ক্রিয়া সম্পন্ন করেন (যেমন বোতাম ক্লিক করা বা কীবোর্ডের কী চাপানো), তখন সেই ইভেন্টটি ইভেন্ট সোর্স থেকে উৎপন্ন হয় এবং ইভেন্ট লিসনার বা হ্যান্ডলার সেই ইভেন্টটি গ্রহণ করে।
উদাহরণ:
- Button: যদি ব্যবহারকারী একটি বোতামে ক্লিক করেন, তবে ঐ বোতামটি একটি ইভেন্ট সোর্স হিসেবে কাজ করবে।
- TextField: একটি টেক্সট ফিল্ডে কিছু টাইপ করলে, সেটি একটি ইভেন্ট সোর্স হিসেবে কাজ করবে।
2. Event Listeners (ইভেন্ট লিসনার)
ইভেন্ট লিসনার হল সেই অবজেক্ট বা ক্লাস যেটি ইভেন্ট সোর্স থেকে ইভেন্ট গ্রহণ করে এবং সেই ইভেন্টে প্রয়োজনীয় অ্যাকশন গ্রহণ করে। ইভেন্ট লিসনার একটি ইন্টারফেস বা অবজেক্ট হিসেবে থাকে এবং ActionListener, MouseListener, KeyListener ইত্যাদি ধরনের ইন্টারফেস বা ক্লাসের মাধ্যমে ইভেন্ট হ্যান্ডল করা হয়।
বৈশিষ্ট্য:
- ইভেন্ট লিসনারকে ইভেন্ট সোর্সের সাথে অ্যাটাচ করতে হয়, যাতে ইভেন্ট সোর্সের কোনো ক্রিয়া ঘটলে ইভেন্ট লিসনার সেটি শনাক্ত করে এবং প্রাসঙ্গিক কার্যক্রম গ্রহণ করতে পারে।
- AWT-এ ইভেন্ট লিসনার সাধারণত ইন্টারফেস আকারে থাকে এবং সে অনুযায়ী সেগুলি ইমপ্লিমেন্ট করতে হয়।
ইভেন্ট সোর্স এবং ইভেন্ট লিসনারের মধ্যে সম্পর্ক:
- যখন একটি ব্যবহারকারী কোনো ক্রিয়া করেন (যেমন একটি বোতাম ক্লিক), তখন ইভেন্ট সোর্স (যেমন বোতাম) একটি ইভেন্ট তৈরি করে।
- সেই ইভেন্টটি ইভেন্ট লিসনার (যেমন
ActionListener) গ্রহণ করে এবং নির্দিষ্ট অ্যাকশন (যেমন "Button clicked!" মেসেজ প্রিন্ট করা) সম্পন্ন করে।
ইভেন্ট হ্যান্ডলিংয়ের উদাহরণ
import java.awt.*;
import java.awt.event.*;
public class ButtonClickExample {
public static void main(String[] args) {
// Frame তৈরি
Frame frame = new Frame("Button Click Example");
// বোতাম তৈরি
Button button = new Button("Click Me");
// বোতামে ActionListener যোগ করা
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
}
});
// বোতামটি Frame-এ যোগ করা
frame.add(button);
// Frame সাইজ এবং দৃশ্যমান করা
frame.setSize(300, 200);
frame.setVisible(true);
// উইন্ডো ক্লোজ করার জন্য হ্যান্ডলার
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
}
}
এখানে:
- Button: Event Source (কারণ এটি বোতাম ক্লিকের মাধ্যমে ইভেন্ট তৈরি করে)।
- ActionListener: Event Listener (এটি বোতামের ক্লিক ইভেন্ট গ্রহণ করে এবং প্রাসঙ্গিক অ্যাকশন গ্রহণ করে, যেমন একটি মেসেজ প্রিন্ট করা)।
ইভেন্ট লিসনারের প্রধান ধরনের:
- ActionListener: বোতাম ক্লিক, মেনু আইটেম নির্বাচন, অথবা অন্য কিছু অ্যাকশন হ্যান্ডল করতে ব্যবহৃত হয়।
- method:
actionPerformed(ActionEvent e)
- method:
- MouseListener: মাউস ইভেন্ট (যেমন মাউস ক্লিক, মাউস এন্ট্রি, মাউস এক্সিট ইত্যাদি) হ্যান্ডল করতে ব্যবহৃত হয়।
- methods:
mouseClicked(),mouseEntered(),mouseExited(),mousePressed(),mouseReleased()
- methods:
- KeyListener: কীবোর্ডের ইভেন্ট (যেমন কী চাপানো, কী রিলিজ করা) হ্যান্ডল করতে ব্যবহৃত হয়।
- methods:
keyTyped(),keyPressed(),keyReleased()
- methods:
- WindowListener: উইন্ডো সম্পর্কিত ইভেন্ট (যেমন উইন্ডো খোলা, উইন্ডো বন্ধ করা) হ্যান্ডল করতে ব্যবহৃত হয়।
- methods:
windowOpened(),windowClosing(),windowClosed(),windowIconified(),windowDeiconified()
- methods:
সারাংশ:
- Event Sources: এগুলি সেই কম্পোনেন্ট যা থেকে ইভেন্ট তৈরি হয় (যেমন বোতাম, টেক্সট ফিল্ড, মাউস ইত্যাদি)।
- Event Listeners: এগুলি সেই অবজেক্ট যা ইভেন্ট গ্রহণ করে এবং সেই ইভেন্টে নির্দিষ্ট অ্যাকশন বা কার্যক্রম গ্রহণ করে (যেমন
ActionListener,MouseListener,KeyListenerইত্যাদি)।
AWT-এ ইভেন্ট হ্যান্ডলিং ব্যবস্থার মাধ্যমে, ব্যবহারকারীর সাথে অ্যাপ্লিকেশনের ইন্টারঅ্যাকশন পরিচালিত হয়।
Read more