Java AWT (Abstract Window Toolkit) ব্যবহার করে Custom Input Validator তৈরি করার জন্য আপনি ব্যবহারকারীর ইনপুট যাচাই করার জন্য কাস্টম মেথড তৈরি করতে পারেন। সাধারণত, ইনপুট ফিল্ডের মধ্যে কাস্টম ভ্যালিডেশন করতে TextField, TextArea, বা অন্যান্য ইনপুট কম্পোনেন্টের উপর KeyListener বা FocusListener ব্যবহার করা হয়।
এখানে AWT-এ Custom Input Validator তৈরি করার একটি উদাহরণ দেওয়া হলো, যেখানে আমরা TextField-এ কাস্টম ইনপুট ভ্যালিডেশন যুক্ত করেছি:
উদাহরণ: Custom Input Validator
import java.awt.*;
import java.awt.event.*;
public class CustomInputValidator extends Frame implements KeyListener {
// UI Components
private TextField inputField;
private Label messageLabel;
public CustomInputValidator() {
// Initialize components
inputField = new TextField();
inputField.setBounds(50, 50, 200, 30);
messageLabel = new Label();
messageLabel.setBounds(50, 100, 300, 30);
// Add KeyListener to inputField to handle live validation
inputField.addKeyListener(this);
// Frame setup
add(inputField);
add(messageLabel);
setSize(400, 200);
setLayout(null);
setVisible(true);
}
// KeyListener method to validate input
@Override
public void keyPressed(KeyEvent e) {
// Custom validation logic (e.g., only numeric input allowed)
String inputText = inputField.getText();
// Validate if input contains only numbers
if (!inputText.matches("[0-9]+")) {
messageLabel.setText("Invalid input! Only numbers are allowed.");
} else {
messageLabel.setText("Valid input.");
}
}
@Override
public void keyReleased(KeyEvent e) {
// Optional: Handle key release event if needed
}
@Override
public void keyTyped(KeyEvent e) {
// Optional: Handle key typed event if needed
}
public static void main(String[] args) {
new CustomInputValidator();
}
}
কোড ব্যাখ্যা:
- TextField and Label:
TextFieldব্যবহার করা হয়েছে ইনপুট নেওয়ার জন্য এবংLabelব্যবহার করা হয়েছে ভ্যালিডেশন বার্তা দেখানোর জন্য।
- KeyListener:
KeyListenerইন্টারফেসেরkeyPressedমেথডে কাস্টম ইনপুট ভ্যালিডেশন যুক্ত করা হয়েছে। এখানে, আমরা শুধু সংখ্যা ইনপুটকে অনুমতি দিচ্ছি।matches("[0-9]+")ব্যবহার করে চেক করা হচ্ছে ইনপুট শুধুমাত্র ডিজিট আছে কিনা। অন্য কোনো অক্ষর হলে, একটি ত্রুটি বার্তা প্রদর্শিত হয়।
- Real-time Validation:
KeyListenerব্যবহার করা হয়েছে যাতে ইনপুটের প্রতিটি পরিবর্তন সঠিকভাবে চেক করা যায়।
- Customization:
- আপনি ভ্যালিডেশনের জন্য নিজের নিয়মগুলি তৈরি করতে পারেন (যেমন ইমেইল ভ্যালিডেশন, ফোন নাম্বার ভ্যালিডেশন, বা যেকোনো বিশেষ নিয়ম অনুসারে ইনপুট যাচাই করা)।
কাস্টম ইনপুট ভ্যালিডেশনের অন্যান্য উদাহরণ:
- ইমেইল ভ্যালিডেশন:
inputText.matches("^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$")
- ফোন নাম্বার ভ্যালিডেশন:
inputText.matches("\\d{10}")
Optional: FocusListener দিয়ে ভ্যালিডেশন:
আপনি যদি TextField এর ফোকাস হারানোর পর ইনপুট যাচাই করতে চান, তবে FocusListener ব্যবহার করতে পারেন।
inputField.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
// Handle focus gained event
}
@Override
public void focusLost(FocusEvent e) {
// Custom validation when focus is lost
String inputText = inputField.getText();
if (!inputText.matches("[0-9]+")) {
messageLabel.setText("Invalid input! Only numbers are allowed.");
} else {
messageLabel.setText("Valid input.");
}
}
});
AWT ব্যবহার করে Custom Input Validator তৈরি করার জন্য KeyListener, FocusListener বা অন্যান্য ইভেন্ট লিসনার ব্যবহার করা যেতে পারে। আপনি কাস্টম নিয়ম তৈরি করে বিভিন্ন ধরনের ইনপুট ভ্যালিডেশন করতে পারবেন, যা আপনার অ্যাপ্লিকেশনকে আরও নিরাপদ ও ব্যবহারকারী বান্ধব করে তুলবে।
Read more