Dialog এবং Popup উইন্ডো তৈরি

এডাব্লিউটি (AWT) - Java Technologies

311

AWT Dialog এবং Popup উইন্ডো তৈরি একটি গুরুত্বপূর্ণ ফিচার যা ব্যবহারকারীর সাথে যোগাযোগের জন্য বার্তা প্রদর্শন, তথ্য সংগ্রহ বা কোনও সংকেত প্রদান করতে ব্যবহৃত হয়। AWT এ দুটি প্রধান ধরনের ডায়ালগ উইন্ডো রয়েছে:

  1. Dialog: সাধারণ ডায়ালগ উইন্ডো যা নির্দিষ্ট ইন্টারঅ্যাকশনের জন্য ব্যবহৃত হয়। এটি উইন্ডোতে বার্তা, টেক্সট ফিল্ড, বাটন ইত্যাদি থাকতে পারে।
  2. PopupMenu: মাউসের মাধ্যমে একটি পপআপ মেনু প্রদর্শন করার জন্য ব্যবহৃত হয়, যা সাধারণত ডান-ক্লিকের মাধ্যমে খুলে।

1. AWT Dialog উইন্ডো তৈরি

AWT এ Dialog উইন্ডো তৈরি করার জন্য Dialog ক্লাস ব্যবহার করা হয়। এটি সাধারণত একটি আলাদা ছোট উইন্ডো হিসাবে প্রদর্শিত হয়, যা প্রায়ই ব্যবহারকারীর কাছ থেকে ইনপুট বা তথ্য প্রাপ্তির জন্য ব্যবহৃত হয়।

Dialog উইন্ডো তৈরি করার পদক্ষেপ:

  1. Dialog ক্লাসের একটি অবজেক্ট তৈরি করুন।
  2. ব্যবহারকারীর সাথে যোগাযোগের জন্য বার্তা বা অন্যান্য উপাদান যোগ করুন (যেমন বাটন, লেবেল)।
  3. setVisible(true) ব্যবহার করে ডায়ালগ উইন্ডোটি প্রদর্শন করুন।

উদাহরণ: একটি সাধারণ Dialog উইন্ডো তৈরি

import java.awt.*;
import java.awt.event.*;

public class DialogExample {
    public static void main(String[] args) {
        Frame f = new Frame("AWT Dialog Example");
        
        // ডায়ালগ বক্স তৈরি
        Dialog d = new Dialog(f, "Dialog Box", true);
        d.setSize(300, 150);
        d.setLayout(new FlowLayout());
        
        // ডায়ালগে একটি লেবেল এবং বাটন যোগ করা
        Label label = new Label("This is a Dialog Box");
        Button okButton = new Button("OK");
        
        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                d.setVisible(false);  // ডায়ালগ বন্ধ করবে
            }
        });
        
        d.add(label);
        d.add(okButton);
        
        f.setSize(400, 300);
        f.setVisible(true);
        
        // ডায়ালগ প্রদর্শন
        d.setVisible(true);
    }
}

ব্যাখ্যা:

  • এখানে, Dialog ক্লাস ব্যবহার করে একটি সাধারণ ডায়ালগ তৈরি করা হয়েছে।
  • setModal(true) ব্যবহার করলে এটি মডাল ডায়ালগ হয়ে যায়, অর্থাৎ এটি মূল উইন্ডোতে ফোকাস ফিরে আসা না পর্যন্ত ব্যবহারকারী ডায়ালগ উইন্ডোটি বন্ধ করতে পারবে না।
  • বাটন ক্লিক করার মাধ্যমে ডায়ালগ বন্ধ করার প্রক্রিয়া ঘটানো হয়েছে।

2. AWT PopupMenu তৈরি

AWT এ PopupMenu ব্যবহার করে একটি পপআপ মেনু তৈরি করা হয়, যা সাধারণত ডান-ক্লিকের মাধ্যমে প্রদর্শিত হয়।

PopupMenu উইন্ডো তৈরি করার পদক্ষেপ:

  1. PopupMenu ক্লাসের একটি অবজেক্ট তৈরি করুন।
  2. পপআপ মেনুতে বিভিন্ন মেনু আইটেম যোগ করুন (MenuItem ব্যবহার করে)।
  3. মেনু প্রদর্শন করতে show() মেথড ব্যবহার করুন।

উদাহরণ: একটি PopupMenu তৈরি

import java.awt.*;
import java.awt.event.*;

public class PopupMenuExample {
    public static void main(String[] args) {
        Frame f = new Frame("AWT PopupMenu Example");

        // পপআপ মেনু তৈরি
        PopupMenu popup = new PopupMenu();
        
        // মেনু আইটেম তৈরি
        MenuItem item1 = new MenuItem("Option 1");
        MenuItem item2 = new MenuItem("Option 2");
        MenuItem item3 = new MenuItem("Exit");
        
        // মেনু আইটেমগুলোর জন্য ActionListener যোগ করা
        item1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("Option 1 Selected");
            }
        });
        
        item2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("Option 2 Selected");
            }
        });

        item3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);  // অ্যাপ্লিকেশন বন্ধ করবে
            }
        });
        
        // পপআপ মেনুর মধ্যে আইটেমগুলো যোগ করা
        popup.add(item1);
        popup.add(item2);
        popup.add(item3);

        // ফ্রেমে পপআপ মেনু যুক্ত করা
        f.add(popup);

        // ফ্রেমে মাউস লিসেনার যুক্ত করা যাতে ডান-ক্লিক করলে পপআপ মেনু প্রদর্শিত হয়
        f.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent me) {
                if (me.isPopupTrigger()) {
                    popup.show(f, me.getX(), me.getY());
                }
            }
            
            public void mouseReleased(MouseEvent me) {
                if (me.isPopupTrigger()) {
                    popup.show(f, me.getX(), me.getY());
                }
            }
        });
        
        f.setSize(400, 300);
        f.setVisible(true);
    }
}

ব্যাখ্যা:

  • PopupMenu ক্লাস একটি পপআপ মেনু তৈরি করে, এবং এতে MenuItem ব্যবহার করে মেনু আইটেম যোগ করা হয়।
  • মাউসের ডান-ক্লিকের মাধ্যমে mousePressed() এবং mouseReleased() মেথডে isPopupTrigger() চেক করে পপআপ মেনু প্রদর্শন করা হয়।
  • মেনু আইটেমগুলোর জন্য ActionListener যোগ করা হয়েছে, যাতে ব্যবহারকারী একটি অপশন নির্বাচন করলে তা প্রসেস করা হয়।

AWT-তে Dialog এবং PopupMenu উইন্ডো তৈরি করার মাধ্যমে Java অ্যাপ্লিকেশনগুলিতে ব্যবহারকারীর সাথে যোগাযোগ বা তথ্য প্রদর্শন করা সহজ হয়ে যায়। Dialog উইন্ডো সাধারণত ইনপুট বা তথ্য দেখানোর জন্য ব্যবহৃত হয়, আর PopupMenu মাউসের মাধ্যমে দ্রুত এক্সেসযোগ্য অপশন সরবরাহ করে।

Content added By

AWT Dialog কম্পোনেন্ট ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন করতে ব্যবহৃত হয়, যেখানে একটি Dialog Window খোলা হয় যা অন্যান্য উইন্ডোগুলোর থেকে আলাদা থাকে। Dialog উইন্ডোগুলোর দুটি প্রধান ধরন রয়েছে: Modal Dialog এবং Non-Modal Dialog

Modal Dialog:

Modal Dialog এমন একটি ডায়ালগ যা অন্য কোনো উইন্ডো বা কম্পোনেন্টের সাথে ইন্টারঅ্যাকশন করার আগে ব্যবহারকারীর কাছ থেকে কোন ইনপুট বা একশন নেওয়া আবশ্যক। অর্থাৎ, Modal Dialog খোলা থাকলে, এটি ব্যবহারকারীকে অন্য কোন উইন্ডোর সাথে কাজ করতে দেয় না যতক্ষণ না এটি বন্ধ না হয়।

Non-Modal Dialog:

Non-Modal Dialog হলো এমন একটি ডায়ালগ যা ব্যবহারকারীকে অন্য উইন্ডোগুলোর সাথে একযোগে কাজ করার অনুমতি দেয়। অর্থাৎ, Non-Modal Dialog খোলার পর ব্যবহারকারী অন্য উইন্ডো বা কম্পোনেন্টের সাথে কাজ করতে পারে, যেহেতু এটি modal নয়

AWT তে Modal এবং Non-Modal Dialog তৈরি করার উদাহরণ:

1. Modal Dialog তৈরি করা:

Modal Dialog তৈরি করার জন্য Dialog ক্লাস ব্যবহার করা হয় এবং true প্যারামিটারটি প্রদান করা হয় setModal(true) মেথডে, যাতে এটি Modal হিসেবে কাজ করে।

উদাহরণ:

import java.awt.*;
import java.awt.event.*;

public class ModalDialogExample {
    public static void main(String[] args) {
        Frame f = new Frame("AWT Modal Dialog Example");

        // Button to open Modal Dialog
        Button btnOpenDialog = new Button("Open Modal Dialog");
        btnOpenDialog.setBounds(50, 50, 200, 30);

        // ActionListener for button
        btnOpenDialog.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // Create a modal dialog
                Dialog modalDialog = new Dialog(f, "Modal Dialog", true);
                modalDialog.setSize(300, 200);
                modalDialog.setLayout(new FlowLayout());

                // Add a label and button inside the modal dialog
                modalDialog.add(new Label("This is a Modal Dialog"));
                Button closeBtn = new Button("Close");
                modalDialog.add(closeBtn);

                // ActionListener for close button
                closeBtn.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        modalDialog.setVisible(false); // Close the dialog
                    }
                });

                modalDialog.setVisible(true); // Show the modal dialog
            }
        });

        f.add(btnOpenDialog);
        f.setSize(400, 300);
        f.setLayout(null);
        f.setVisible(true);
    }
}

ব্যাখ্যা:

  • Dialog modalDialog = new Dialog(f, "Modal Dialog", true); : এই লাইনটি Modal Dialog তৈরি করে যেখানে true প্যারামিটারটি নির্দেশ করে এটি একটি Modal Dialog হবে।
  • Modal Dialog খোলার পর ব্যবহারকারী কেবল এই Dialog-টির সাথে ইন্টারঅ্যাক্ট করতে পারবেন, অন্য কোনো উইন্ডোর সাথে নয়।

2. Non-Modal Dialog তৈরি করা:

Non-Modal Dialog তৈরি করতে, Dialog ক্লাস ব্যবহার করা হয় এবং false প্যারামিটারটি প্রদান করা হয় setModal(false) মেথডে, যাতে এটি Non-Modal হিসেবে কাজ করে। Non-Modal Dialog ব্যবহারকারীদের অন্য উইন্ডোগুলোর সাথে একযোগে কাজ করার অনুমতি দেয়।

উদাহরণ:

import java.awt.*;
import java.awt.event.*;

public class NonModalDialogExample {
    public static void main(String[] args) {
        Frame f = new Frame("AWT Non-Modal Dialog Example");

        // Button to open Non-Modal Dialog
        Button btnOpenDialog = new Button("Open Non-Modal Dialog");
        btnOpenDialog.setBounds(50, 50, 200, 30);

        // ActionListener for button
        btnOpenDialog.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // Create a non-modal dialog
                Dialog nonModalDialog = new Dialog(f, "Non-Modal Dialog", false);
                nonModalDialog.setSize(300, 200);
                nonModalDialog.setLayout(new FlowLayout());

                // Add a label and button inside the non-modal dialog
                nonModalDialog.add(new Label("This is a Non-Modal Dialog"));
                Button closeBtn = new Button("Close");
                nonModalDialog.add(closeBtn);

                // ActionListener for close button
                closeBtn.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        nonModalDialog.setVisible(false); // Close the dialog
                    }
                });

                nonModalDialog.setVisible(true); // Show the non-modal dialog
            }
        });

        f.add(btnOpenDialog);
        f.setSize(400, 300);
        f.setLayout(null);
        f.setVisible(true);
    }
}

ব্যাখ্যা:

  • Dialog nonModalDialog = new Dialog(f, "Non-Modal Dialog", false); : এই লাইনটি Non-Modal Dialog তৈরি করে যেখানে false প্যারামিটারটি নির্দেশ করে এটি একটি Non-Modal Dialog হবে।
  • Non-Modal Dialog খোলার পর ব্যবহারকারী একযোগে অন্য উইন্ডোগুলোর সাথে কাজ করতে পারবেন, যেহেতু এটি Modal নয়।

Modal এবং Non-Modal Dialog-এর মধ্যে পার্থক্য:

বিশেষত্বModal DialogNon-Modal Dialog
উইন্ডো ইন্টারঅ্যাকশনঅন্য কোন উইন্ডোর সাথে ইন্টারঅ্যাকশন সীমিত থাকে যতক্ষণ না Dialog বন্ধ হয়।ব্যবহারকারী অন্য উইন্ডোগুলোর সাথে একযোগে কাজ করতে পারেন।
ব্যবহারফর্ম পূরণ, নিশ্চিতকরণ বার্তা বা গুরুত্বপূর্ণ তথ্য প্রদান করার জন্য ব্যবহৃত হয়।সাধারণত সাহায্য, তথ্য প্রদর্শন বা অতিরিক্ত বিকল্পগুলির জন্য ব্যবহৃত হয়।
ডায়ালগ বন্ধ না হওয়া পর্যন্তঅন্যান্য উইন্ডোগুলোর সাথে কাজ করা যায় না।অন্যান্য উইন্ডোগুলোর সাথে কাজ করা সম্ভব।
  • Modal Dialog প্রধানত ব্যবহারকারীর বাধ্যতামূলক ইনপুট বা অনুমোদন প্রয়োজন এমন পরিস্থিতিতে ব্যবহার করা হয়, যেমন সাবমিট ফর্ম বা কোনো গুরুত্বপূর্ণ বার্তা প্রদর্শন।
  • Non-Modal Dialog তখন ব্যবহৃত হয় যখন আপনি ব্যবহারকারীকে অন্যান্য উইন্ডোগুলোর সাথে একযোগে কাজ করার সুযোগ দিতে চান, যেমন অতিরিক্ত তথ্য প্রদর্শন করা।

AWT-তে Modal এবং Non-Modal Dialog তৈরি করতে Dialog ক্লাস এবং setModal() পদ্ধতি ব্যবহার করা হয়, যেখানে true বা false প্যারামিটার ব্যবহার করে আপনি Modal বা Non-Modal Dialog নির্বাচন করতে পারেন।

Content added By

AWT (Abstract Window Toolkit) তে Message Dialog, Confirm Dialog, এবং Input Dialog ব্যবহার করা হয় ব্যবহারকারীর সঙ্গে ইন্টারঅ্যাকশনের জন্য। এই ডায়ালগগুলি ব্যবহারকারীকে মেসেজ দেখানোর, কনফার্মেশন নেওয়ার বা ইনপুট গ্রহণ করার জন্য ব্যবহৃত হয়।

1. Message Dialog

Message Dialog সাধারণত তথ্য বা বার্তা প্রদর্শনের জন্য ব্যবহৃত হয়। এটি সাধারণত এক বা একাধিক বাটন (যেমন OK) নিয়ে আসে, যার মাধ্যমে ব্যবহারকারী বার্তাটি দেখার পর অ্যাপ্লিকেশন চালিয়ে যেতে পারেন।

বৈশিষ্ট্য:

  • Information, Warning, Error প্রকারের বার্তা প্রদর্শন করতে পারে।
  • সাধারণত একটি "OK" বাটন দিয়ে ব্যবহারকারীর থেকে কোনো প্রতিক্রিয়া আশা করা হয়।

উদাহরণ:

import java.awt.*;
import javax.swing.*;

public class MessageDialogExample {
    public static void main(String[] args) {
        // JFrame তৈরি
        JFrame frame = new JFrame("Message Dialog Example");

        // MessageDialog প্রদর্শন
        JOptionPane.showMessageDialog(frame, "This is an information message", "Info", JOptionPane.INFORMATION_MESSAGE);

        // Frame বন্ধ করা
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}

এখানে, JOptionPane.showMessageDialog ব্যবহার করা হয়েছে একটি সাধারণ ইনফরমেশন বার্তা দেখানোর জন্য।

2. Confirm Dialog

Confirm Dialog সাধারণত ব্যবহারকারীর কাছ থেকে একটি নিশ্চিতকরণ বা অনুমতি চাওয়ার জন্য ব্যবহৃত হয়। এটি দুটি বা তিনটি অপশন থাকতে পারে, যেমন Yes, No, এবং Cancel। ব্যবহারকারী একটি অপশন সিলেক্ট করার মাধ্যমে তার সিদ্ধান্ত জানায়।

বৈশিষ্ট্য:

  • Yes, No, এবং Cancel অপশন থাকে।
  • ব্যবহারকারী কোন অপশন নির্বাচন করলে একটি ভ্যালু (যেমন YES_OPTION, NO_OPTION, CANCEL_OPTION) ফিরে আসে, যা অ্যাপ্লিকেশনের পরবর্তী কাজ নির্ধারণ করতে সাহায্য করে।

উদাহরণ:

import java.awt.*;
import javax.swing.*;

public class ConfirmDialogExample {
    public static void main(String[] args) {
        // JFrame তৈরি
        JFrame frame = new JFrame("Confirm Dialog Example");

        // Confirm Dialog প্রদর্শন
        int response = JOptionPane.showConfirmDialog(frame, "Do you want to continue?", "Confirm", JOptionPane.YES_NO_OPTION);

        // ব্যবহারকারীর প্রতিক্রিয়া দেখানো
        if (response == JOptionPane.YES_OPTION) {
            System.out.println("User chose Yes.");
        } else if (response == JOptionPane.NO_OPTION) {
            System.out.println("User chose No.");
        }

        // Frame বন্ধ করা
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}

এখানে, JOptionPane.showConfirmDialog ব্যবহার করা হয়েছে একটি কনফার্মেশন ডায়ালগ প্রদর্শন করার জন্য, যেখানে Yes বা No অপশন থাকে। ব্যবহারকারীর উত্তর অনুযায়ী অ্যাপ্লিকেশন কাজ করবে।

3. Input Dialog

Input Dialog ব্যবহারকারীর কাছ থেকে ইনপুট গ্রহণ করার জন্য ব্যবহৃত হয়। এটি সাধারণত একটি টেক্সট ফিল্ড সহ ডায়ালগ উইন্ডো প্রদর্শন করে, যেখানে ব্যবহারকারী কিছু লিখে OK বাটনে ক্লিক করে ইনপুট প্রদান করতে পারেন।

বৈশিষ্ট্য:

  • ব্যবহারকারী টেক্সট ইনপুট হিসেবে একটি মান প্রদান করেন।
  • ইনপুট গ্রহণের পর সেই মানটি প্রোগ্রামে ব্যবহৃত হতে পারে।

উদাহরণ:

import java.awt.*;
import javax.swing.*;

public class InputDialogExample {
    public static void main(String[] args) {
        // JFrame তৈরি
        JFrame frame = new JFrame("Input Dialog Example");

        // Input Dialog প্রদর্শন
        String name = JOptionPane.showInputDialog(frame, "Enter your name:");

        // ইনপুট প্রদর্শন
        if (name != null) {
            System.out.println("User's name: " + name);
        } else {
            System.out.println("No input received.");
        }

        // Frame বন্ধ করা
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}

এখানে, JOptionPane.showInputDialog ব্যবহার করা হয়েছে ব্যবহারকারীর কাছ থেকে ইনপুট নেওয়ার জন্য। ব্যবহারকারী ইনপুট দেওয়ার পর সেই ইনপুটটি প্রিন্ট করা হয়েছে।


সারাংশ:

  • Message Dialog: ব্যবহারকারীকে তথ্য বা বার্তা প্রদর্শন করে। উদাহরণ: Information, Warning, Error মেসেজ।
  • Confirm Dialog: ব্যবহারকারীর কাছ থেকে নিশ্চিতকরণ (যেমন Yes, No, Cancel) নেয়। উদাহরণ: সিদ্ধান্ত নিতে বা কোনো কাজ করার জন্য অনুমতি চাওয়া।
  • Input Dialog: ব্যবহারকারীর কাছ থেকে ইনপুট নেয়, যেমন টেক্সট, সংখ্যা ইত্যাদি।

AWT-এ এই ডায়ালগগুলি সহজে এবং দ্রুত ব্যবহারকারী ইন্টারঅ্যাকশনের জন্য খুবই কার্যকরী।

Content added By

AWT (Abstract Window Toolkit)-এ Custom Dialog তৈরি করা মানে হলো একটি কাস্টম ডায়লগ উইন্ডো তৈরি করা যা ব্যবহারকারীকে বিশেষ কোন তথ্য বা অপশন দেখানোর জন্য ব্যবহৃত হয়। Java AWT এ Dialog ক্লাসের মাধ্যমে ডায়লগ উইন্ডো তৈরি করা হয় এবং কাস্টমাইজেশন করার জন্য আমরা সাধারণত Dialog ক্লাসের একটি সাবক্লাস ব্যবহার করি।

Custom Dialog তৈরি করার পদক্ষেপ:

  1. Dialog ক্লাস ব্যবহার করা:
    Dialog একটি উইন্ডো যা মূল ফ্রেমের উপর একটি ডায়লগ উইন্ডো দেখায়। এটি সাধারণত একটি মেসেজ বা ইনপুটের জন্য ব্যবহৃত হয়।
  2. Layout সেট করা:
    ডায়লগের মধ্যে যে উপাদানগুলো রাখতে হবে, সেগুলোর লেআউট সঠিকভাবে সেট করতে হবে। এর জন্য FlowLayout, GridLayout, BorderLayout ইত্যাদি ব্যবহার করা যেতে পারে।
  3. Close Button বা অন্যান্য বাটন যোগ করা:
    ডায়লগ উইন্ডোটি বন্ধ করতে একটি ক্লোজ বাটন (যেমন "OK" বা "Cancel") যোগ করা যেতে পারে।

Custom Dialog উদাহরণ:

import java.awt.*;
import java.awt.event.*;

public class CustomDialogExample {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT Custom Dialog Example");

        // Create a button to open the custom dialog
        Button button = new Button("Open Custom Dialog");

        // ActionListener for the button to open the dialog
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                CustomDialog dialog = new CustomDialog(frame, "Custom Dialog", true);
                dialog.setSize(300, 200);
                dialog.setVisible(true);
            }
        });

        frame.add(button);
        frame.setSize(400, 300);
        frame.setLayout(new FlowLayout());
        frame.setVisible(true);
        
        // Close the frame when clicked on close button
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });
    }
}

class CustomDialog extends Dialog {
    public CustomDialog(Frame parent, String title, boolean modal) {
        super(parent, title, modal);

        // Set the layout for the dialog
        setLayout(new FlowLayout());
        
        // Create a label and add it to the dialog
        Label label = new Label("This is a custom dialog.");
        add(label);
        
        // Create an OK button and add it to the dialog
        Button okButton = new Button("OK");
        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();  // Close the dialog when OK is clicked
            }
        });
        add(okButton);
    }
}

ব্যাখ্যা:

  1. Main Frame (Parent Frame):
    এখানে একটি Frame তৈরি করা হয়েছে যেখানে একটি বোতাম রয়েছে। এই বোতামটি ক্লিক করলে একটি কাস্টম ডায়লগ উইন্ডো খোলা হবে।
  2. CustomDialog ক্লাস:
    • CustomDialog একটি Dialog ক্লাসের সাবক্লাস। এটি কাস্টম ডায়লগ উইন্ডো তৈরি করতে ব্যবহৃত হয়।
    • এই ডায়লগের মধ্যে একটি লেবেল এবং একটি "OK" বাটন রয়েছে। "OK" বাটনটি ক্লিক করলে ডায়লগটি বন্ধ হয়ে যাবে।
  3. Modal Dialog:
    Dialog এর তৃতীয় প্যারামিটার true দিলে এটি modal ডায়লগ তৈরি করবে, অর্থাৎ ডায়লগটি ওপেন থাকা অবস্থায় মূল উইন্ডোতে কোনো অ্যাকশন করা যাবে না যতক্ষণ না ডায়লগটি বন্ধ হবে।
  4. Layout:
    ডায়লগের মধ্যে উপাদানগুলোর লেআউট FlowLayout ব্যবহার করা হয়েছে। আপনি এটি পরিবর্তন করে অন্য লেআউটও ব্যবহার করতে পারেন (যেমন GridLayout বা BorderLayout)।

ডায়লগের অন্যান্য বৈশিষ্ট্য:

  • Modal vs Modeless:
    Dialog উইন্ডোটি modal বা modeless হতে পারে। Modal ডায়লগ ব্যবহারকারীকে প্রধান উইন্ডোতে ফিরে আসার জন্য ডায়লগটি বন্ধ করতে বাধ্য করে, যখন Modeless ডায়লগ প্রধান উইন্ডোতে ফিরে আসার অনুমতি দেয়।
  • UI Customization:
    আপনি ডায়লগের মধ্যে অন্যান্য উপাদান যেমন TextField, TextArea, Checkbox, RadioButton ইত্যাদি যোগ করতে পারেন, এবং তাদের উপর ইভেন্ট হ্যান্ডলিংও করতে পারেন।

AWT তে কাস্টম ডায়লগ তৈরি করা সহজ এবং কাস্টমাইজযোগ্য। Dialog ক্লাসের মাধ্যমে আপনি বিভিন্ন ধরনের ডায়লগ তৈরি করতে পারেন এবং এতে প্রয়োজনীয় উপাদান যোগ করতে পারেন, যা আপনার অ্যাপ্লিকেশনটিকে আরও ব্যবহারকারী বান্ধব করে তোলে।

Content added By

AWT (Abstract Window Toolkit) তে Dialog এবং Popup Window-এর styling সাধারণত সীমিত, কারণ AWT এর মূল লক্ষ্য ছিল প্ল্যাটফর্ম নিরপেক্ষতা এবং সিস্টেমের গ্রাফিক্যাল ইন্টারফেসের সাথে সহজ ইন্টিগ্রেশন। তবে, Dialog এবং Popup Window-এর জন্য কিছু মৌলিক স্টাইলিং করা সম্ভব, বিশেষত AWT Dialog এবং PopupMenu ব্যবহার করে।

১. Dialog Styling

AWT তে Dialog একটি পপ-আপ উইন্ডো হিসেবে ব্যবহৃত হয় যা সাধারণত ব্যবহারকারীকে একটি কাস্টম মেসেজ বা অপশন প্রদান করতে ব্যবহার করা হয়। Dialog উইন্ডোতে স্টাইলিং করার জন্য কিছু অপশন আছে, যেমন উইন্ডোর আকার, শিরোনাম, বিভিন্ন উপাদান যোগ করা এবং কিছু কিছু কাস্টমাইজেশন।

Dialog তৈরি এবং স্টাইলিং:

import java.awt.*;
import java.awt.event.*;

public class DialogExample {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT Dialog Example");

        // Button to open dialog
        Button openDialogButton = new Button("Open Dialog");
        openDialogButton.setBounds(100, 100, 100, 30);

        // Creating a dialog
        Dialog dialog = new Dialog(frame, "Sample Dialog", true);
        dialog.setLayout(new FlowLayout());
        dialog.setSize(300, 150);
        dialog.setLocationRelativeTo(frame); // Center the dialog over the parent frame

        // Adding a label and button inside the dialog
        Label label = new Label("This is a dialog window");
        Button closeDialogButton = new Button("Close");
        closeDialogButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dialog.setVisible(false);
            }
        });

        dialog.add(label);
        dialog.add(closeDialogButton);

        // Button action to open the dialog
        openDialogButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dialog.setVisible(true); // Show dialog
            }
        });

        frame.add(openDialogButton);
        frame.setSize(400, 300);
        frame.setLayout(null);
        frame.setVisible(true);

        // Close window action
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });
    }
}

ব্যাখ্যা:

  1. এখানে একটি Dialog তৈরি করা হয়েছে যা একটি Frame এর উপরে প্রদর্শিত হবে। Dialog এর শিরোনাম, সাইজ, এবং কন্টেন্ট কাস্টমাইজ করা হয়েছে।
  2. FlowLayout ব্যবহার করা হয়েছে যাতে উপাদানগুলো (Label, Button) স্বাভাবিকভাবে এলাইন হয়।
  3. Dialog-এর স্টাইলিং সোজা কিন্তু সীমিত, যেমন সাইজ এবং কন্টেন্ট সজ্জা কাস্টমাইজ করা সম্ভব।

Dialog Styling Tips:

  • সাইজ: dialog.setSize(width, height);
  • শিরোনাম: dialog.setTitle("Dialog Title");
  • সেন্টারিং: dialog.setLocationRelativeTo(parentFrame);
  • মডাল/নন-মডাল: ডায়ালগটি মডাল বা নন-মডাল হিসেবে তৈরি করা যায়। মডাল ডায়ালগ ব্যবহারকারীকে শুধুমাত্র ডায়ালগটি বন্ধ না করা পর্যন্ত অন্য কোনো উইন্ডো ব্যবহার করতে দেয় না।

২. Popup Menu Styling

AWT তে PopupMenu হলো একটি কনটেক্সট মেনু, যা সাধারণত রাইট-ক্লিকের মাধ্যমে প্রদর্শিত হয়। এর মধ্যে মেনু আইটেমগুলি কাস্টমাইজ করা যায়, কিন্তু স্টাইলিং যথেষ্ট সীমিত থাকে।

Popup Menu তৈরি এবং স্টাইলিং:

import java.awt.*;
import java.awt.event.*;

public class PopupMenuExample {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT PopupMenu Example");

        // Creating a popup menu
        PopupMenu popupMenu = new PopupMenu();

        // Creating menu items
        MenuItem menuItem1 = new MenuItem("Option 1");
        MenuItem menuItem2 = new MenuItem("Option 2");
        MenuItem menuItem3 = new MenuItem("Option 3");

        // Adding menu items to the popup menu
        popupMenu.add(menuItem1);
        popupMenu.add(menuItem2);
        popupMenu.add(menuItem3);

        // Adding popup menu to the frame
        frame.add(popupMenu);
        frame.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent me) {
                if (me.isPopupTrigger()) {
                    popupMenu.show(me.getComponent(), me.getX(), me.getY());
                }
            }
            public void mouseReleased(MouseEvent me) {
                if (me.isPopupTrigger()) {
                    popupMenu.show(me.getComponent(), me.getX(), me.getY());
                }
            }
        });

        // Setting frame size and visibility
        frame.setSize(400, 300);
        frame.setVisible(true);

        // Close window action
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });
    }
}

ব্যাখ্যা:

  1. PopupMenu তৈরি করা হয়েছে এবং মেনু আইটেমগুলো যোগ করা হয়েছে।
  2. MouseAdapter এর মাধ্যমে মাউসের রাইট ক্লিকের মাধ্যমে পপআপ মেনু প্রদর্শিত হয়।
  3. PopupMenu নিজে খুব সীমিত স্টাইলিং প্রদান করে, তবে আপনি মেনু আইটেমের লেবেল, আইটেমের অ্যাকশন ইত্যাদি কাস্টমাইজ করতে পারেন।

PopupMenu Styling Tips:

  • MenuItem Styling: আপনি MenuItem এর জন্য setFont(), setForeground(), setBackground() ইত্যাদি ব্যবহার করে কিছু মৌলিক স্টাইলিং করতে পারেন।
  • Popup Positioning: popupMenu.show(component, x, y) এর মাধ্যমে পপআপ মেনুটির অবস্থান নির্ধারণ করা যায়।

Styling এর সীমাবদ্ধতা:

AWT-তে Dialog এবং PopupMenu-এর স্টাইলিং বেশ সীমিত। আপনি সাধারণত:

  • রঙ এবং ফন্ট কাস্টমাইজ করতে পারেন, তবে UI এর অন্যান্য অংশের সাথে সম্পর্কিত স্টাইলিং পরিবর্তন করতে AWT-এর মাধ্যমে যথেষ্ট ক্ষমতা পাওয়া যায় না।
  • AWT উইন্ডোটি মূলত প্ল্যাটফর্ম নিরপেক্ষ, তাই এর স্টাইল প্ল্যাটফর্মের উপর নির্ভরশীল হতে পারে।

যদি আপনি আরও উন্নত স্টাইলিং এবং কাস্টমাইজেশন চান, তবে Swing বা JavaFX ব্যবহার করতে পারেন, কারণ এই প্রযুক্তিগুলি আরও উন্নত GUI কন্ট্রোল এবং স্টাইলিং সুবিধা প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...