AWT (Abstract Window Toolkit)-এ Panel এবং Container দুটো গুরুত্বপূর্ণ উপাদান, যা গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) তৈরি করতে ব্যবহৃত হয়। তারা উইন্ডো বা ফ্রেমের মধ্যে বিভিন্ন উপাদান (components) ধারণ করতে এবং উপাদানগুলোর উপযুক্ত ব্যবস্থা বা লেআউট নিয়ন্ত্রণ করতে সাহায্য করে।
1. Panel:
Panel একটি Container বা ধারক, যা সাধারণত একাধিক উপাদান (components) গ্রুপ করতে ব্যবহৃত হয়। এটি ফ্রেম বা অন্য কোনো কনটেইনারের মধ্যে একটি ছোট ইউনিট হিসেবে কাজ করে এবং উপাদানগুলোর জন্য স্থান সরবরাহ করে।
- উদ্দেশ্য: Panel একটি লেআউটের অংশ হিসেবে কাজ করে এবং এতে একাধিক উপাদান রাখতে পারে, যেমন বোতাম, টেক্সট ফিল্ড ইত্যাদি।
- লেআউট ব্যবস্থাপনা: Panel নিজেই কোনো লেআউট ম্যানেজার (যেমন FlowLayout, GridLayout ইত্যাদি) ব্যবহার করতে পারে, অথবা লেআউট ম্যানেজার ব্যবহার না করেও উপাদানগুলোকে হাতে সাজানো যেতে পারে।
- দ্বিতীয়ক উপাদান: Panel কেবলমাত্র একটি কনটেইনার হিসেবে কাজ করে এবং এটিতে কোনো UI উপাদান সরাসরি প্রদর্শিত হয় না।
Panel-এর উদাহরণ:
import java.awt.*;
public class PanelExample {
public static void main(String[] args) {
Frame frame = new Frame("Panel Example");
Panel panel = new Panel();
panel.setLayout(new FlowLayout());
panel.add(new Button("Button 1"));
panel.add(new Button("Button 2"));
frame.add(panel);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
এখানে Panel দুটি বোতাম ধারণ করছে এবং FlowLayout ব্যবহারের মাধ্যমে বোতামগুলোর অবস্থান নির্ধারণ করছে।
2. Container:
Container হলো একটি উপাদান যা একাধিক উপাদানকে ধারণ করতে পারে এবং উপাদানগুলোর ব্যবস্থাপনা ও প্রদর্শন নিয়ন্ত্রণ করতে সহায়ক। Panel এবং Frame (যেমন) Container ক্লাসের ডেরিভেটিভ, অর্থাৎ তারা Container শ্রেণীর বৈশিষ্ট্য ধারণ করে।
- উদ্দেশ্য: Container উইন্ডো বা প্যানেলের মতো একটি বৃহত্তর ইউনিটে একাধিক উপাদান (button, textfield, label ইত্যাদি) রাখে। এটি সাধারণত একটি সঠিক লেআউট ম্যানেজারের মাধ্যমে উপাদানগুলোর সজ্জা নিয়ন্ত্রণ করে।
- উপাদান রাখার ক্ষমতা: Container সব ধরনের উপাদান ধারণ করতে সক্ষম, এবং এটির মাধ্যমে সমস্ত উপাদানকে পর্যবেক্ষণ ও নিয়ন্ত্রণ করা হয়।
- উন্নত ব্যবস্থাপনা: Container ক্লাসটি উপাদানগুলোর জন্য লেআউট ম্যানেজার সরবরাহ করতে সক্ষম, যা উপাদানগুলোর যথাযথ স্থান নির্ধারণ করে।
Container-এর উদাহরণ:
import java.awt.*;
public class ContainerExample {
public static void main(String[] args) {
Frame frame = new Frame("Container Example");
frame.setLayout(new FlowLayout());
frame.add(new Button("Button 1"));
frame.add(new Button("Button 2"));
frame.setSize(300, 200);
frame.setVisible(true);
}
}
এখানে Frame হলো একটি Container, এবং এটি দুটি বোতাম ধারণ করছে। Frame নিজেই একটি কনটেইনার, তবে এটি সাধারণত বৃহত্তর উইন্ডো বা কনটেইনার হিসেবে ব্যবহৃত হয়।
Panel এবং Container-এর মধ্যে পার্থক্য:
- Panel হলো একটি ছোট কনটেইনার, যা একটি বৃহত্তর কনটেইনারের (যেমন Frame) মধ্যে ব্যবহার করা হয়, এবং সাধারণত একটি নির্দিষ্ট অংশে উপাদান ধারণ করতে ব্যবহৃত হয়।
- Container হলো একটি সাধারণ শ্রেণী, যা বিভিন্ন ধরনের কনটেইনার ক্লাস (যেমন Frame, Panel, Window) ধারণ করতে সক্ষম।
সারাংশ:
- Panel কেবল একটি ছোট কনটেইনার যা উপাদান গ্রুপ করতে ব্যবহৃত হয়।
- Container হলো একটি সাধারণ ক্লাস যা উপাদান ধারণ করতে এবং তাদের মধ্যে সঠিক ব্যবস্থাপনা করতে সহায়ক। Panel, Frame, এবং অন্যান্য কনটেইনারগুলি Container শ্রেণী থেকে আসে।
Read more