Skill

জাভা GUI প্রোগ্রামিং

জাভা প্রোগ্রামিং (Java Programming) - Computer Programming

397

Java-তে GUI (Graphical User Interface) প্রোগ্রামিং ব্যবহার করে ইউজারদের সাথে ইন্টারেক্টিভ অ্যাপ্লিকেশন তৈরি করা যায়। Java-র Swing এবং AWT (Abstract Window Toolkit) লাইব্রেরি ব্যবহার করে বিভিন্ন GUI উপাদান যেমন বোতাম, টেক্সট ফিল্ড, লেবেল ইত্যাদি তৈরি করা সম্ভব। GUI প্রোগ্রামিং ব্যবহার করে Java অ্যাপ্লিকেশনকে আরও ইউজার-ফ্রেন্ডলি করা যায়।


Java GUI এর জন্য প্রধান দুটি লাইব্রেরি

  1. AWT (Abstract Window Toolkit): এটি Java এর প্রাথমিক GUI টুলকিট যা নেটিভ অপারেটিং সিস্টেম কম্পোনেন্ট ব্যবহার করে। এটি কিছুটা পুরানো এবং সীমাবদ্ধ।
  2. Swing: AWT এর উপর ভিত্তি করে তৈরি করা হয়েছে এবং এটি Java এর আরও উন্নত GUI টুলকিট। Swing বিভিন্ন UI কম্পোনেন্ট যেমন বোতাম, টেক্সট বক্স, লেবেল ইত্যাদি প্রদান করে, যা প্ল্যাটফর্ম-ইন্ডিপেন্ডেন্ট এবং সহজেই কাস্টমাইজ করা যায়।

Swing ব্যবহার করে একটি সাধারণ GUI প্রোগ্রাম

Swing এর মাধ্যমে সহজেই একটি উইন্ডো তৈরি করা যায় যেখানে বোতাম, লেবেল এবং টেক্সট ফিল্ড যুক্ত করা যায়। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো:

import javax.swing.*;

public class SimpleGUI {
    public static void main(String[] args) {
        // JFrame তৈরি করা
        JFrame frame = new JFrame("Simple GUI Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // JLabel, JTextField এবং JButton তৈরি করা
        JLabel label = new JLabel("Enter your name:");
        label.setBounds(50, 50, 150, 30);
        
        JTextField textField = new JTextField();
        textField.setBounds(200, 50, 150, 30);
        
        JButton button = new JButton("Submit");
        button.setBounds(150, 150, 100, 30);

        // JFrame এ কম্পোনেন্ট যোগ করা
        frame.add(label);
        frame.add(textField);
        frame.add(button);
        
        frame.setLayout(null); // লে-আউট সেটিং বন্ধ করা
        frame.setVisible(true); // ফ্রেম দৃশ্যমান করা
    }
}

ব্যাখ্যা:

  • JFrame: এটি একটি প্রধান উইন্ডো যেখানে অন্যান্য কম্পোনেন্ট যুক্ত করা হয়।
  • JLabel: এটি একটি লেবেল যা টেক্সট প্রদর্শন করে।
  • JTextField: এটি একটি টেক্সট ফিল্ড যেখানে ইউজার ইনপুট দিতে পারে।
  • JButton: এটি একটি বোতাম যা ইউজারের ইনপুট অনুযায়ী কার্য সম্পাদন করতে ব্যবহৃত হয়।

Event Handling

Java GUI প্রোগ্রামে Event Handling অত্যন্ত গুরুত্বপূর্ণ। ইভেন্ট হ্যান্ডলিং ব্যবহার করে বোতাম চাপা, মাউস ক্লিক, টেক্সট ফিল্ডে লেখা ইত্যাদি প্রতিক্রিয়া সম্পন্ন করা যায়।

ActionListener ব্যবহার করে Event Handling

ActionListener ইন্টারফেস ব্যবহার করে বোতাম ক্লিক ইভেন্ট হ্যান্ডল করা যায়।

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

public class EventHandlingExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Event Handling Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel label = new JLabel("Enter your name:");
        label.setBounds(50, 50, 150, 30);

        JTextField textField = new JTextField();
        textField.setBounds(200, 50, 150, 30);

        JButton button = new JButton("Submit");
        button.setBounds(150, 150, 100, 30);

        JLabel resultLabel = new JLabel();
        resultLabel.setBounds(150, 200, 200, 30);

        // ActionListener যোগ করা
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String name = textField.getText();
                resultLabel.setText("Hello, " + name + "!");
            }
        });

        frame.add(label);
        frame.add(textField);
        frame.add(button);
        frame.add(resultLabel);

        frame.setLayout(null);
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  • button.addActionListener(...): বোতামে ক্লিক করলে ActionListener কার্যকর হয়।
  • resultLabel.setText(...): বোতাম চাপার পর resultLabel এ নতুন টেক্সট প্রদর্শন করা হয়।

কিছু গুরুত্বপূর্ণ Swing কম্পোনেন্ট

  • JFrame: মূল উইন্ডো বা কন্টেইনার।
  • JPanel: একটি কন্টেইনার যা JFrame এর মধ্যে বিভিন্ন কম্পোনেন্ট রাখে।
  • JLabel: লেবেল তৈরি করে, যা সাধারণত ইনফরমেশন দেখায়।
  • JTextField: টেক্সট ইনপুটের জন্য।
  • JButton: বোতাম তৈরি করে, যা ক্লিক ইভেন্ট হ্যান্ডল করতে সাহায্য করে।
  • JTextArea: বহু লাইন টেক্সট ইনপুটের জন্য ব্যবহৃত হয়।
  • JCheckBox: চেকবক্স তৈরি করে, যা সিলেক্ট এবং আনসিলেক্ট করা যায়।
  • JRadioButton: রেডিও বাটন তৈরি করে, যা একাধিক অপশনের মধ্যে একটি নির্বাচন করতে সাহায্য করে।

Layout Managers

Swing এ বিভিন্ন কম্পোনেন্ট সাজানোর জন্য Layout Managers ব্যবহৃত হয়। কিছু জনপ্রিয় Layout Manager:

  1. FlowLayout: কম্পোনেন্টগুলো এক লাইনে সাজায়।
  2. BorderLayout: পাঁচটি অঞ্চল - NORTH, SOUTH, EAST, WEST, CENTER এ কম্পোনেন্ট সাজায়।
  3. GridLayout: একটি গ্রিড তৈরি করে, যেখানে নির্দিষ্ট সংখ্যক সারি এবং কলাম থাকে।
  4. BoxLayout: কম্পোনেন্টগুলোকে উল্লম্ব বা অনুভূমিকভাবে সাজায়।

উদাহরণ: BorderLayout ব্যবহার করা

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

public class BorderLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("BorderLayout Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setLayout(new BorderLayout());

        JButton northButton = new JButton("NORTH");
        JButton southButton = new JButton("SOUTH");
        JButton eastButton = new JButton("EAST");
        JButton westButton = new JButton("WEST");
        JButton centerButton = new JButton("CENTER");

        frame.add(northButton, BorderLayout.NORTH);
        frame.add(southButton, BorderLayout.SOUTH);
        frame.add(eastButton, BorderLayout.EAST);
        frame.add(westButton, BorderLayout.WEST);
        frame.add(centerButton, BorderLayout.CENTER);

        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  • BorderLayout ব্যবহার করে বিভিন্ন স্থানে বোতামগুলোকে সাজানো হয়েছে, যেমন NORTH, SOUTH, EAST, WEST, এবং CENTER।

GUI প্রোগ্রামিংয়ের সুবিধা এবং সীমাবদ্ধতা

সুবিধা

  1. ইউজার ফ্রেন্ডলি: GUI অ্যাপ্লিকেশন ইউজারদের জন্য ইন্টারেক্টিভ এবং সহজ।
  2. প্ল্যাটফর্ম স্বাধীনতা: Java Swing প্ল্যাটফর্ম ইন্ডিপেন্ডেন্ট, অর্থাৎ বিভিন্ন অপারেটিং সিস্টেমে একইভাবে কাজ করে।
  3. সহজ ইভেন্ট হ্যান্ডলিং: GUI অ্যাপ্লিকেশন বিভিন্ন ইভেন্ট হ্যান্ডল করতে পারে, যেমন মাউস ক্লিক, কি প্রেস ইত্যাদি।

সীমাবদ্ধতা

  1. পারফরম্যান্স সীমাবদ্ধতা: বড় GUI অ্যাপ্লিকেশন তৈরি করলে পারফরম্যান্স কিছুটা ধীর হতে পারে।
  2. AWT এবং Swing এর সীমাবদ্ধতা: JavaFX এর তুলনায় Swing এবং AWT পুরানো এবং কিছু ক্ষেত্রে সীমাবদ্ধ।
  3. UI কাস্টমাইজেশন সীমাবদ্ধ: Java Swing এর কিছু UI উপাদান তুলনামূলকভাবে সীমিত কাস্টমাইজেশন সমর্থন করে।

সারসংক্ষেপ

Java-তে GUI প্রোগ্রামিং ব্যবহার করে ব্যবহারকারীদের জন্য ইন্টারেক্টিভ অ্যাপ্লিকেশন তৈরি করা যায়। Swing এবং AWT ব্যবহার করে JFrame, JButton, JTextField, JLabel, এবং অন্যান্য GUI কম্পোনেন্ট তৈরি করা যায়। Event Handling এবং Layout Managers এর মাধ্যমে কম্পোনেন্টগুলোর অবস্থান এবং ইন্টারেকশন সহজে কন্ট্রোল করা যায়। GUI প্রোগ্রামিং অ্যাপ্লিকেশনকে আরও ইউজার-ফ্রেন্ডলি এবং ইন্টারেক্টিভ করে তোলে, যা ডেক্সটপ অ্যাপ্লিকেশন ডেভেলপমেন্টে অত্যন্ত কার্যকরী।

Content added || updated By

সুইং (Swing) হলো Java এর একটি GUI (Graphical User Interface) টুলকিট, যা Java অ্যাপ্লিকেশনে গ্রাফিক্যাল ইউজার ইন্টারফেস তৈরি করতে ব্যবহার করা হয়। এটি javax.swing প্যাকেজে অবস্থিত এবং Java Foundation Classes (JFC)-এর একটি অংশ। সুইং এর সাহায্যে ইউজার-ইন্টারফেস তৈরি করে এমন অ্যাপ্লিকেশন তৈরি করা যায়, যা বিভিন্ন ধরনের উইন্ডো, বোতাম, মেনু, টেক্সট ফিল্ড, এবং অন্যান্য GUI উপাদান প্রদর্শন ও পরিচালনা করতে সক্ষম।


সুইং এর বৈশিষ্ট্য

  1. প্ল্যাটফর্ম ইন্ডিপেনডেন্ট: সুইং কোড লিখলে এটি সব প্ল্যাটফর্মে একই রকম প্রদর্শিত হয়।
  2. লাইটওয়েট: সুইং এর উপাদানগুলো তুলনামূলকভাবে হালকা, কারণ এগুলো নেটিভ (প্ল্যাটফর্ম নির্ভর) নয় বরং Java-তে তৈরি।
  3. কাস্টমাইজেবল: সুইং উপাদানগুলো সহজে কাস্টমাইজ এবং এক্সটেন্ড করা যায়।
  4. MVC আর্কিটেকচার: সুইং Model-View-Controller আর্কিটেকচার অনুসরণ করে, যা ডেটা এবং উপস্থাপনের মধ্যে একটি স্পষ্ট বিভাজন তৈরি করে।
  5. ইভেন্ট-ড্রিভেন প্রোগ্রামিং: সুইং ইভেন্ট-ড্রিভেন, অর্থাৎ ব্যবহারকারীর ক্রিয়ার উপর ভিত্তি করে অ্যাপ্লিকেশন প্রতিক্রিয়া জানায়।

সুইং এর কিছু প্রধান কম্পোনেন্ট

  1. JFrame: প্রধান উইন্ডো হিসেবে ব্যবহৃত হয়।
  2. JPanel: কন্টেইনার যা অন্যান্য উপাদান ধরে রাখে।
  3. JButton: বোতাম তৈরি করতে ব্যবহৃত হয়।
  4. JLabel: স্ট্যাটিক টেক্সট বা চিত্র প্রদর্শন করে।
  5. JTextField: ব্যবহারকারীর ইনপুট নেয়ার জন্য টেক্সট ফিল্ড।
  6. JTextArea: একাধিক লাইন টেক্সট প্রদর্শনের জন্য ব্যবহৃত।
  7. JCheckBox: চেকবক্স তৈরি করে, যা নির্বাচন করা যায়।
  8. JRadioButton: রেডিও বোতাম তৈরি করে, যা একবারে একটি নির্বাচন নিশ্চিত করে।
  9. JComboBox: ড্রপডাউন লিস্ট তৈরি করে, যা থেকে একটি মান নির্বাচন করা যায়।
  10. JMenuBar, JMenu, JMenuItem: মেনু বার এবং মেনু আইটেম তৈরি করতে ব্যবহৃত।

Swing এর একটি সাধারণ উদাহরণ

নিচে একটি সাধারণ সুইং অ্যাপ্লিকেশন উদাহরণ দেয়া হলো, যেখানে JFrame এবং JButton ব্যবহার করে একটি উইন্ডো তৈরি করা হয়েছে।

import javax.swing.JButton;
import javax.swing.JFrame;

public class SwingExample {
    public static void main(String[] args) {
        // JFrame তৈরি এবং সেট করা
        JFrame frame = new JFrame("Swing Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null); // Layout ম্যানেজার ব্যবহার না করা

        // JButton তৈরি এবং সেট করা
        JButton button = new JButton("Click Me");
        button.setBounds(150, 100, 100, 40); // বোতামের অবস্থান এবং আকার

        // বোতামটিকে JFrame-এ যুক্ত করা
        frame.add(button);

        // JFrame দৃশ্যমান করা
        frame.setVisible(true);
    }
}

বিবরণ:

  • JFrame: "Swing Example" নামে একটি ফ্রেম তৈরি করা হয়েছে।
  • JButton: "Click Me" টেক্সট সহ একটি বোতাম তৈরি করা হয়েছে এবং ফ্রেমে যুক্ত করা হয়েছে।
  • setVisible(true) দিয়ে ফ্রেমটি দৃশ্যমান করা হয়েছে।

ইভেন্ট হ্যান্ডলিং

Swing-এ ইভেন্ট হ্যান্ডলিংয়ের মাধ্যমে ইউজার ইন্টারঅ্যাকশন পরিচালনা করা হয়। উদাহরণস্বরূপ, ActionListener ব্যবহার করে বোতাম ক্লিকের ইভেন্ট হ্যান্ডল করা যায়।

import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SwingEventExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Swing Event Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JButton button = new JButton("Click Me");
        button.setBounds(150, 100, 100, 40);

        // ইভেন্ট হ্যান্ডলিং যুক্ত করা
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Button clicked!");
            }
        });

        frame.add(button);
        frame.setVisible(true);
    }
}

বিবরণ:

  • ActionListener ইন্টারফেস ব্যবহার করে বোতামের সাথে ইভেন্ট হ্যান্ডলার যুক্ত করা হয়েছে।
  • যখন বোতামটি ক্লিক করা হয়, তখন "Button clicked!" মেসেজ প্রিন্ট করা হয়।

লেআউট ম্যানেজার

Swing-এ বিভিন্ন লেআউট ম্যানেজার রয়েছে, যা GUI উপাদানগুলির অবস্থান এবং আকার নির্ধারণ করতে ব্যবহৃত হয়।

  • FlowLayout: উপাদানগুলোকে একটি নির্দিষ্ট প্রবাহে সাজায়।
  • BorderLayout: পাঁচটি অঞ্চল (উত্তর, দক্ষিণ, পূর্ব, পশ্চিম, এবং কেন্দ্র) এ উপাদানগুলো সাজায়।
  • GridLayout: উপাদানগুলোকে গ্রিডের আকারে সাজায়।
  • BoxLayout: উপাদানগুলোকে একে একে আড়াআড়ি বা উল্লম্বভাবে সাজায়।

উদাহরণ: BorderLayout ব্যবহার

import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.BorderLayout;

public class BorderLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("BorderLayout Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setLayout(new BorderLayout());

        frame.add(new JButton("North"), BorderLayout.NORTH);
        frame.add(new JButton("South"), BorderLayout.SOUTH);
        frame.add(new JButton("East"), BorderLayout.EAST);
        frame.add(new JButton("West"), BorderLayout.WEST);
        frame.add(new JButton("Center"), BorderLayout.CENTER);

        frame.setVisible(true);
    }
}

বিবরণ:

  • BorderLayout দিয়ে ফ্রেমে পাঁচটি বোতাম যুক্ত করা হয়েছে।
  • প্রতিটি বোতাম নির্দিষ্ট অঞ্চলে (উত্তর, দক্ষিণ, পূর্ব, পশ্চিম, এবং কেন্দ্র) অবস্থান করছে।

Swing vs AWT

বৈশিষ্ট্যSwingAWT
উপাদানলাইটওয়েটহেভিওয়েট
কাস্টমাইজেশনসহজে কাস্টমাইজ করা যায়কাস্টমাইজ করা কঠিন
প্ল্যাটফর্ম ইন্ডিপেনডেন্টপ্ল্যাটফর্ম ইন্ডিপেনডেন্টপ্ল্যাটফর্ম ডিপেনডেন্ট
পারফরম্যান্সতুলনামূলক দ্রুততুলনামূলক ধীর

Swing এর সুবিধা এবং সীমাবদ্ধতা

সুবিধা

  1. লাইটওয়েট: Swing-এর উপাদানগুলো লাইটওয়েট, ফলে অ্যাপ্লিকেশন দ্রুত চলে।
  2. উন্নত ইউজার ইন্টারফেস: সুইং দিয়ে উন্নত এবং আকর্ষণীয় ইউজার ইন্টারফেস তৈরি করা সম্ভব।
  3. কাস্টমাইজযোগ্য: সহজে কাস্টমাইজ করা যায় এবং এর উপাদানগুলো অ্যাপ্লিকেশন অনুযায়ী পরিবর্তন করা যায়।
  4. MVC আর্কিটেকচার: মডেল-ভিউ-কন্ট্রোলার আর্কিটেকচার, যা প্রোগ্রামিংয়ের গঠন সহজ করে।

সীমাবদ্ধতা

  1. পারফরম্যান্স: বড় এবং জটিল অ্যাপ্লিকেশনের জন্য পারফরম্যান্স কিছুটা ধীর হতে পারে।
  2. ডেস্কটপ ফোকাসড: Swing মূলত ডেস্কটপ অ্যাপ্লিকেশনের জন্য তৈরি, ওয়েব বা মোবাইলের জন্য উপযুক্ত নয়।
  3. কম আধুনিক: GUI ডেভেলপমেন্টের জন্য এখন JavaFX বেশি আধুনিক এবং ব্যবহারযোগ্য, যেখানে Swing কিছুটা পুরনো হয়ে গেছে।

সারসংক্ষেপ

  • Swing হলো Java-এর একটি GUI টুলকিট যা প্ল্যাটফর্ম ইন্ডিপেনডেন্ট ডেস্কটপ অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়।
  • এটি বিভিন্ন ধরনের কম্পোনেন্ট যেমন JFrame, JButton, JLabel ইত্যাদি ব্যবহার করে উন্নত ইউজার ইন্টারফেস তৈরি করতে পারে।
  • Swing প্ল্যাটফর্ম-ইন্ডিপেনডেন্ট, লাইটওয়েট এবং কাস্টমাইজেবল, যা Java-তে ডেস্কটপ অ্যাপ্লিকেশন তৈরিতে অনেক সুবিধা প্রদান করে।

Swing-এ GUI তৈরি করে Java প্রোগ্রামিংয়ে সহজেই ব্যবহারযোগ্য এবং আকর্ষণীয় অ্যাপ্লিকেশন ডেভেলপ করা সম্ভব, যা ডেস্কটপ ভিত্তিক বিভিন্ন অ্যাপ্লিকেশনের জন্য গুরুত্বপূর্ণ।

Content added By

Java-তে বেসিক উইন্ডো তৈরি করতে Swing লাইব্রেরি ব্যবহার করা হয়, যেখানে JFrame ক্লাস ব্যবহার করে একটি প্রধান উইন্ডো তৈরি করা যায়। এই JFrame-এ বিভিন্ন UI কম্পোনেন্ট যেমন বোতাম, লেবেল, এবং টেক্সট ফিল্ড যোগ করা সম্ভব।


JFrame দিয়ে বেসিক উইন্ডো তৈরি

JFrame দিয়ে বেসিক উইন্ডো তৈরি করার ধাপগুলো:

  1. JFrame অবজেক্ট তৈরি করা।
  2. JFrame এর সাইজ, টাইটেল এবং ডিফল্ট ক্লোজ অপারেশন সেট করা।
  3. JFrame কে দৃশ্যমান করা।

উদাহরণ: JFrame দিয়ে একটি বেসিক উইন্ডো তৈরি

নিচের উদাহরণে একটি সহজ JFrame উইন্ডো তৈরি করা হয়েছে, যেখানে উইন্ডোর টাইটেল, সাইজ, এবং ক্লোজ অপারেশন সেট করা হয়েছে।

import javax.swing.JFrame;

public class BasicWindowExample {
    public static void main(String[] args) {
        // JFrame অবজেক্ট তৈরি
        JFrame frame = new JFrame("Basic Window");

        // JFrame এর সাইজ সেট করা
        frame.setSize(400, 300);

        // ডিফল্ট ক্লোজ অপারেশন সেট করা (উইন্ডো বন্ধ করলে প্রোগ্রাম বন্ধ হবে)
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // JFrame দৃশ্যমান করা
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  1. JFrame Creation: JFrame frame = new JFrame("Basic Window"); - এখানে JFrame তৈরি করা হয়েছে এবং টাইটেল সেট করা হয়েছে।
  2. Size Setting: frame.setSize(400, 300); - উইন্ডোর সাইজ সেট করা হয়েছে ৪০০ পিক্সেল প্রশস্ত এবং ৩০০ পিক্সেল উচ্চ।
  3. Close Operation: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - উইন্ডো বন্ধ করলে প্রোগ্রামও বন্ধ হয়ে যাবে।
  4. Visibility: frame.setVisible(true); - JFrame কে দৃশ্যমান করা হয়েছে, যাতে এটি স্ক্রিনে দেখা যায়।

JFrame এর আরও কিছু সেটিংস

JFrame-এর আরও কিছু সেটিংস যা উইন্ডোতে ব্যবহার করা যায়:

Resizable: উইন্ডোর আকার পরিবর্তনযোগ্য কিনা তা নির্ধারণ করতে।

frame.setResizable(false); // উইন্ডোর আকার পরিবর্তন করা যাবে না

Location: স্ক্রিনে JFrame-এর অবস্থান নির্ধারণ করতে।

frame.setLocationRelativeTo(null); // JFrame স্ক্রিনের মাঝখানে দেখাবে

Layout Manager বন্ধ করা: JFrame এ কম্পোনেন্ট নির্দিষ্ট স্থানে বসানোর জন্য Layout Manager বন্ধ করতে পারেন।

frame.setLayout(null); // Layout Manager বন্ধ

JLabel এবং JButton সহ JFrame

নিচে একটি উদাহরণ দেওয়া হলো যেখানে JFrame-এ একটি JLabel (লেবেল) এবং JButton (বোতাম) যুক্ত করা হয়েছে।

import javax.swing.*;

public class BasicWindowWithComponents {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Window with Components");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null); // Layout Manager বন্ধ করা

        // JLabel তৈরি এবং JFrame এ যুক্ত করা
        JLabel label = new JLabel("Hello, Swing!");
        label.setBounds(150, 50, 100, 30);
        frame.add(label);

        // JButton তৈরি এবং JFrame এ যুক্ত করা
        JButton button = new JButton("Click Me");
        button.setBounds(150, 150, 100, 30);
        frame.add(button);

        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  • JLabel ব্যবহার করে "Hello, Swing!" টেক্সটযুক্ত একটি লেবেল তৈরি করা হয়েছে এবং নির্দিষ্ট স্থানে স্থাপন করা হয়েছে।
  • JButton ব্যবহার করে "Click Me" নামে একটি বোতাম তৈরি করা হয়েছে এবং সেটিও JFrame-এ যুক্ত করা হয়েছে।

JFrame এর কিছু গুরুত্বপূর্ণ মেথড

  1. setSize(int width, int height): উইন্ডোর প্রস্থ এবং উচ্চতা সেট করে।
  2. setTitle(String title): উইন্ডোর টাইটেল সেট করে।
  3. setDefaultCloseOperation(int operation): উইন্ডো বন্ধ হলে প্রোগ্রাম কী করবে তা নির্ধারণ করে (যেমন JFrame.EXIT_ON_CLOSE)।
  4. setVisible(boolean visible): JFrame দৃশ্যমান করে।
  5. setLayout(LayoutManager layout): Layout Manager সেট করে যা কম্পোনেন্টগুলো কিভাবে স্থাপন করা হবে তা নিয়ন্ত্রণ করে।

উইন্ডোতে ক্লিক ইভেন্ট হ্যান্ডলিং

JButton এ ক্লিক করলে একটি ইভেন্ট ঘটানো যায়, যা ActionListener ইন্টারফেস ব্যবহার করে করা হয়।

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class WindowWithButtonEvent {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Window with Button Event");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JButton button = new JButton("Click Me");
        button.setBounds(150, 100, 100, 30);

        // ActionListener ব্যবহার করে ইভেন্ট হ্যান্ডলিং
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(frame, "Button Clicked!");
            }
        });

        frame.add(button);
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  • button.addActionListener(...): বোতামে ক্লিক করলে একটি ActionEvent ঘটানো হয়েছে।
  • JOptionPane.showMessageDialog(...): বোতামে ক্লিক করলে একটি মেসেজ বক্স দেখায়, যেখানে "Button Clicked!" লেখা থাকে।

সংক্ষেপে

Java-তে JFrame ব্যবহার করে সহজেই একটি বেসিক GUI উইন্ডো তৈরি করা যায়, যেখানে JLabel, JButton এবং অন্যান্য কম্পোনেন্ট যোগ করে অ্যাপ্লিকেশন আরও ইন্টারেক্টিভ করা যায়। JFrame এর সাইজ, টাইটেল, এবং ক্লোজ অপারেশন সেট করার মাধ্যমে প্রাথমিকভাবে একটি বেসিক উইন্ডো তৈরি করা হয়। Layout Manager এবং Event Handling যোগ করার মাধ্যমে GUI-কে আরও কার্যকরী করা সম্ভব, যা Java অ্যাপ্লিকেশনকে আরও ইউজার-ফ্রেন্ডলি করে তোলে।

Content added By

Java Swing-এ বিভিন্ন ধরনের কম্পোনেন্ট রয়েছে, যা GUI (Graphical User Interface) তৈরি করতে ব্যবহৃত হয়। কিছু সাধারণ কম্পোনেন্ট হলো বাটন (Button), লেবেল (Label), টেক্সটফিল্ড (TextField) ইত্যাদি। নিচে প্রতিটি কম্পোনেন্টের বিবরণ ও উদাহরণ দেওয়া হলো।


১. JButton (বাটন)

JButton হলো একটি ক্লিকযোগ্য বোতাম, যা ব্যবহারকারী ইভেন্ট ট্রিগার করতে ক্লিক করতে পারে।

উদাহরণ:

import javax.swing.JButton;
import javax.swing.JFrame;

public class JButtonExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Button Example");
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JButton button = new JButton("Click Me");
        button.setBounds(100, 80, 100, 30);

        frame.add(button);
        frame.setVisible(true);
    }
}

বিবরণ:

  • JButton দিয়ে একটি বোতাম তৈরি করা হয়েছে, যা "Click Me" টেক্সট প্রদর্শন করে।
  • setBounds() মেথড দিয়ে বোতামের অবস্থান ও আকার নির্ধারণ করা হয়েছে।

২. JLabel (লেবেল)

JLabel হলো একটি স্ট্যাটিক টেক্সট বা চিত্র প্রদর্শনের জন্য ব্যবহৃত কম্পোনেন্ট। এটি সাধারণত তথ্য প্রদর্শনে ব্যবহৃত হয় এবং এটি ইন্টারঅ্যাক্টিভ নয়।

উদাহরণ:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class JLabelExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Label Example");
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JLabel label = new JLabel("Hello, Swing!");
        label.setBounds(100, 80, 100, 30);

        frame.add(label);
        frame.setVisible(true);
    }
}

বিবরণ:

  • JLabel দিয়ে "Hello, Swing!" লেখা একটি লেবেল তৈরি করা হয়েছে।
  • লেবেলের অবস্থান এবং আকার setBounds() মেথড দিয়ে নির্ধারণ করা হয়েছে।

৩. JTextField (টেক্সটফিল্ড)

JTextField হলো একটি একক লাইনের টেক্সট ইনপুট ফিল্ড, যেখানে ব্যবহারকারী টেক্সট লিখতে পারে।

উদাহরণ:

import javax.swing.JFrame;
import javax.swing.JTextField;

public class JTextFieldExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("TextField Example");
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JTextField textField = new JTextField();
        textField.setBounds(50, 80, 200, 30);

        frame.add(textField);
        frame.setVisible(true);
    }
}

বিবরণ:

  • JTextField দিয়ে একটি ইনপুট ফিল্ড তৈরি করা হয়েছে, যেখানে ব্যবহারকারী টেক্সট ইনপুট দিতে পারে।
  • setBounds() মেথড দিয়ে টেক্সটফিল্ডের অবস্থান ও আকার নির্ধারণ করা হয়েছে।

৪. JTextArea (মাল্টি-লাইন টেক্সট ইনপুট)

JTextArea হলো একটি মাল্টি-লাইন টেক্সট ইনপুট ক্ষেত্র, যেখানে ব্যবহারকারী একাধিক লাইনে টেক্সট লিখতে পারে।

উদাহরণ:

import javax.swing.JFrame;
import javax.swing.JTextArea;

public class JTextAreaExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("TextArea Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JTextArea textArea = new JTextArea();
        textArea.setBounds(50, 50, 300, 150);

        frame.add(textArea);
        frame.setVisible(true);
    }
}

বিবরণ:

  • JTextArea দিয়ে একটি মাল্টি-লাইন ইনপুট ফিল্ড তৈরি করা হয়েছে।
  • setBounds() মেথড দিয়ে এর অবস্থান এবং আকার নির্ধারণ করা হয়েছে।

৫. JCheckBox (চেকবক্স)

JCheckBox হলো একটি চেকবক্স, যা ব্যবহারকারী নির্বাচন বা আন-সিলেকশন করতে পারে।

উদাহরণ:

import javax.swing.JCheckBox;
import javax.swing.JFrame;

public class JCheckBoxExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("CheckBox Example");
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JCheckBox checkBox = new JCheckBox("Accept Terms");
        checkBox.setBounds(100, 80, 120, 30);

        frame.add(checkBox);
        frame.setVisible(true);
    }
}

বিবরণ:

  • JCheckBox দিয়ে একটি চেকবক্স তৈরি করা হয়েছে, যা ব্যবহারকারী নির্বাচন বা আন-সিলেকশন করতে পারে।
  • setBounds() মেথড দিয়ে চেকবক্সের অবস্থান নির্ধারণ করা হয়েছে।

৬. JRadioButton (রেডিও বোতাম)

JRadioButton হলো একটি রেডিও বোতাম, যা একক অপশন নির্বাচন নিশ্চিত করে।

উদাহরণ:

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButton;

public class JRadioButtonExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("RadioButton Example");
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JRadioButton radio1 = new JRadioButton("Male");
        radio1.setBounds(100, 50, 100, 30);
        JRadioButton radio2 = new JRadioButton("Female");
        radio2.setBounds(100, 80, 100, 30);

        // ButtonGroup দিয়ে রেডিও বোতামগুলোকে গ্রুপ করা
        ButtonGroup group = new ButtonGroup();
        group.add(radio1);
        group.add(radio2);

        frame.add(radio1);
        frame.add(radio2);
        frame.setVisible(true);
    }
}

বিবরণ:

  • JRadioButton দিয়ে দুটি রেডিও বোতাম তৈরি করা হয়েছে।
  • ButtonGroup দিয়ে রেডিও বোতামগুলোকে একটি গ্রুপে যুক্ত করা হয়েছে, যাতে একবারে একটি মাত্র রেডিও বোতাম নির্বাচন করা যায়।

৭. JComboBox (কম্বো বক্স)

JComboBox হলো একটি ড্রপডাউন তালিকা, যেখানে ব্যবহারকারী একটি অপশন নির্বাচন করতে পারে।

উদাহরণ:

import javax.swing.JComboBox;
import javax.swing.JFrame;

public class JComboBoxExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("ComboBox Example");
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        String[] options = {"Java", "Python", "C++", "JavaScript"};
        JComboBox<String> comboBox = new JComboBox<>(options);
        comboBox.setBounds(100, 80, 100, 30);

        frame.add(comboBox);
        frame.setVisible(true);
    }
}

বিবরণ:

  • JComboBox দিয়ে একটি ড্রপডাউন তালিকা তৈরি করা হয়েছে।
  • তালিকায় বিভিন্ন প্রোগ্রামিং ভাষার অপশন যোগ করা হয়েছে।

সারসংক্ষেপ

  • JButton: বোতাম, যা ক্লিক করার মাধ্যমে ইভেন্ট ট্রিগার করতে পারে।
  • JLabel: স্ট্যাটিক টেক্সট বা চিত্র প্রদর্শন করে।
  • JTextField: একক লাইনের টেক্সট ইনপুট নিতে ব্যবহৃত হয়।
  • JTextArea: একাধিক লাইনের টেক্সট ইনপুট নিতে ব্যবহৃত হয়।
  • JCheckBox: চেকবক্স, যা নির্বাচন বা আন-সিলেকশন করা যায়।
  • JRadioButton: রেডিও বোতাম, যা একবারে একটি অপশন নির্বাচন নিশ্চিত করে।
  • JComboBox: ড্রপডাউন তালিকা, যা থেকে একটি অপশন নির্বাচন করা যায়।

Swing-এ এই কম্পোনেন্টগুলো ব্যবহার করে সহজেই বিভিন্ন প্রকারের GUI তৈরি করা যায়, যা অ্যাপ্লিকেশনকে ব্যবহারকারী বান্ধব করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...