AWT Keyboard Event Handling (KeyListener) হলো Java AWT-এর একটি পদ্ধতি যা কীবোর্ডের ইনপুট এবং কীগুলির ওপর ভিত্তি করে ইভেন্ট হ্যান্ডলিং করতে ব্যবহৃত হয়। যখন ব্যবহারকারী কীবোর্ডে কোন কী চাপেন বা ছেড়ে দেন, তখন সেই ইভেন্টগুলি সঠিকভাবে হ্যান্ডল করতে KeyListener ইন্টারফেস ব্যবহার করা হয়।
KeyListener ইন্টারফেস:
KeyListener একটি ইন্টারফেস যা ৩টি গুরুত্বপূর্ণ পদ্ধতি সরবরাহ করে:
- keyPressed(KeyEvent e): এই পদ্ধতি তখন কল হয় যখন ব্যবহারকারী কোন কী প্রেস করেন।
- keyReleased(KeyEvent e): এই পদ্ধতি তখন কল হয় যখন ব্যবহারকারী কোন কী ছেড়ে দেন।
- keyTyped(KeyEvent e): এই পদ্ধতি তখন কল হয় যখন ব্যবহারকারী একটি printable কী টিপে। এটি সাধারণত ব্যবহারকারীর অক্ষরের ইনপুটের জন্য ব্যবহৃত হয় (যেমন অক্ষর টাইপ করা)।
KeyListener-এর ব্যবহার:
KeyListener-এ ইভেন্ট হ্যান্ডলিং করার জন্য প্রথমে একটি KeyListener অবজেক্ট তৈরি করতে হয় এবং এটি এমন একটি কম্পোনেন্টের সাথে যুক্ত করতে হয় যা কীবোর্ড ইনপুট গ্রহণ করতে পারে (যেমন একটি TextField বা Panel)।
ব্যবহারের উদাহরণ:
import java.awt.*;
import java.awt.event.*;
public class KeyboardEventExample extends Frame implements KeyListener {
TextField textField;
public KeyboardEventExample() {
// JFrame তৈরি
textField = new TextField();
textField.setBounds(50, 100, 200, 30);
textField.addKeyListener(this); // KeyListener যোগ করা
// Frame সেটিংস
setSize(300, 300);
setLayout(null);
add(textField);
setVisible(true);
// Window close event
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
}
// keyPressed মেথড, যখন কোনো কী প্রেস করা হয়
public void keyPressed(KeyEvent e) {
System.out.println("Key Pressed: " + e.getKeyChar());
}
// keyReleased মেথড, যখন কোনো কী রিলিজ করা হয়
public void keyReleased(KeyEvent e) {
System.out.println("Key Released: " + e.getKeyChar());
}
// keyTyped মেথড, যখন কোনো printable কী টিপে
public void keyTyped(KeyEvent e) {
System.out.println("Key Typed: " + e.getKeyChar());
}
public static void main(String[] args) {
new KeyboardEventExample();
}
}
ব্যাখ্যা:
- TextField:
TextFieldকম্পোনেন্টে কীবোর্ড ইনপুট নেওয়া হয়। এটিKeyListenerইন্টারফেসের জন্য একটি শ্রোতা (listener) হিসাবে কাজ করবে। - addKeyListener(this): এই লাইনটি
KeyListener-কেTextFieldকম্পোনেন্টে যোগ করে, যাতে কীবোর্ড ইনপুট গ্রহণ করা যায় এবং ইভেন্ট হ্যান্ডলিং সম্ভব হয়। - keyPressed(KeyEvent e): যখন ব্যবহারকারী কোন কী প্রেস করবেন, এই পদ্ধতি কল হবে এবং কী-এর চরিত্র প্রদর্শন করবে।
- keyReleased(KeyEvent e): যখন ব্যবহারকারী কোন কী ছেড়ে দেবেন, এই পদ্ধতি কল হবে এবং কী-এর চরিত্র প্রদর্শন করবে।
- keyTyped(KeyEvent e): এই পদ্ধতিটি তখন কল হয় যখন ব্যবহারকারী একটি printable কী (যেমন অক্ষর) চাপেন। এটি কেবল অক্ষরের জন্য কাজ করে।
KeyListener-এর বিভিন্ন পদ্ধতি:
keyPressed(KeyEvent e):
- ব্যবহারকারী যখন কোন কী চাপেন তখন এই পদ্ধতিটি কল হয়।
e.getKeyCode()দিয়ে কী-এর কোড পাওয়া যায়।e.getKeyChar()দিয়ে কী-এর চরিত্র পাওয়া যায়।
উদাহরণ:
System.out.println("Key Pressed: " + e.getKeyCode());keyReleased(KeyEvent e):
- ব্যবহারকারী যখন কোন কী ছেড়ে দেন, তখন এই পদ্ধতি কল হয়।
উদাহরণ:
System.out.println("Key Released: " + e.getKeyCode());keyTyped(KeyEvent e):
- ব্যবহারকারী একটি printable কী (যেমন অক্ষর বা সংখ্যা) চাপেন, তখন এই পদ্ধতি কল হয়।
উদাহরণ:
System.out.println("Key Typed: " + e.getKeyChar());
KeyListener-এর সাধারণ ব্যবহার:
- KeyListener শুধুমাত্র
KeyEventগ্রহণ করতে পারে, তাই ব্যবহারকারী ইনপুটের জন্য উপযুক্তComponentযেমনTextField,TextArea,Panelইত্যাদি নির্বাচন করতে হবে। - keyTyped() কেবল সেই কী-এর জন্য কাজ করে যা টেক্সট হিসেবে লেখা যায়, অর্থাৎ, এটি অক্ষর বা সংখ্যার জন্য কল হবে (যেমন A, b, 1, 2 ইত্যাদি)।
- keyPressed() এবং keyReleased() কোনো কী-ই প্রেস বা রিলিজ করার জন্য কল হবে, এটি বিশেষভাবে কাজ করে যেকোনো কী চাপলে বা ছেড়ে দিলে।
KeyEvent এর মেথড:
getKeyCode(): এই মেথডটি কী-এর কোড ফেরত দেয় (যেমন,KeyEvent.VK_ENTER,KeyEvent.VK_Aইত্যাদি)।getKeyChar(): এই মেথডটি কী-এর চরিত্র ফেরত দেয় (যেমন,'A','1',' 'ইত্যাদি)।getModifiersEx(): কী-এ কোনো মডিফায়ার (যেমন Shift, Ctrl, Alt) ছিল কি না, তা চেক করার জন্য ব্যবহৃত হয়।
KeyListener-এ সমস্যাবলী:
- Focus সমস্যা:
KeyListenerকাজ করার জন্য সংশ্লিষ্ট কম্পোনেন্টকে focus থাকা প্রয়োজন। এক্ষেত্রে, আপনি যদি focus পেতে চান, তাহলেsetFocusable(true)ব্যবহার করতে পারেন। - KeyListener শুধুমাত্র কিছু কম্পোনেন্টে কাজ করে: এটি শুধুমাত্র
Component-এর জন্য কাজ করবে যা কীবোর্ড ইনপুট গ্রহণ করতে পারে। উদাহরণস্বরূপ,TextFieldবাTextArea।
AWT-তে কীবোর্ড ইভেন্ট হ্যান্ডলিং-এর জন্য KeyListener একটি গুরুত্বপূর্ণ ইন্টারফেস। এটি ব্যবহারকারীর কীবোর্ড ইনপুট সঠিকভাবে গ্রহণ এবং প্রক্রিয়া করার জন্য প্রয়োজনীয় পদ্ধতি সরবরাহ করে। keyPressed(), keyReleased(), এবং keyTyped() মেথডের মাধ্যমে আপনি কীবোর্ডের বিভিন্ন ইভেন্ট সঠিকভাবে হ্যান্ডল করতে পারেন।
Read more