Custom Input Validator তৈরি

Data Entry এবং Validation - এডাব্লিউটি (AWT) - Java Technologies

251

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();
    }
}

কোড ব্যাখ্যা:

  1. TextField and Label:
    • TextField ব্যবহার করা হয়েছে ইনপুট নেওয়ার জন্য এবং Label ব্যবহার করা হয়েছে ভ্যালিডেশন বার্তা দেখানোর জন্য।
  2. KeyListener:
    • KeyListener ইন্টারফেসের keyPressed মেথডে কাস্টম ইনপুট ভ্যালিডেশন যুক্ত করা হয়েছে। এখানে, আমরা শুধু সংখ্যা ইনপুটকে অনুমতি দিচ্ছি।
    • matches("[0-9]+") ব্যবহার করে চেক করা হচ্ছে ইনপুট শুধুমাত্র ডিজিট আছে কিনা। অন্য কোনো অক্ষর হলে, একটি ত্রুটি বার্তা প্রদর্শিত হয়।
  3. Real-time Validation:
    • KeyListener ব্যবহার করা হয়েছে যাতে ইনপুটের প্রতিটি পরিবর্তন সঠিকভাবে চেক করা যায়।
  4. 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 বা অন্যান্য ইভেন্ট লিসনার ব্যবহার করা যেতে পারে। আপনি কাস্টম নিয়ম তৈরি করে বিভিন্ন ধরনের ইনপুট ভ্যালিডেশন করতে পারবেন, যা আপনার অ্যাপ্লিকেশনকে আরও নিরাপদ ও ব্যবহারকারী বান্ধব করে তুলবে।

Content added By
Promotion

Are you sure to start over?

Loading...