CardLayout এবং GridBagLayout হল দুটি গুরুত্বপূর্ণ লেআউট ম্যানেজার যা Java AWT তে GUI ডিজাইন করতে ব্যবহৃত হয়। প্রতিটির বিশেষ বৈশিষ্ট্য রয়েছে, এবং এটি ভিন্ন ভিন্ন পরিস্থিতিতে ব্যবহার করা হয়। নিচে এই দুটি লেআউট ম্যানেজারের ব্যবহার এবং উদাহরণ দেওয়া হলো:
১. CardLayout
CardLayout লেআউট ম্যানেজারটি একটি "পানেল"কে একাধিক "কার্ড" হিসেবে পরিচালনা করে। আপনি যেমন একটি কার্ড ডেকের মধ্যে একাধিক কার্ড রাখতে পারেন, তেমনি CardLayout এর মাধ্যমে বিভিন্ন উপাদান (components) এর মধ্যে সুইচ করতে পারবেন। এটি ব্যবহারকারীর জন্য একাধিক ভিউ বা সেকশনে পরিবর্তন করতে সুবিধাজনক।
ব্যবহার:
- যখন আপনি একটি GUI-তে একাধিক দৃশ্য বা প্যানেল স্যুইচ করতে চান, যেমন ওয়েব পেজের ট্যাব, বা স্লাইডার শো, সেখানে
CardLayoutব্যবহার করা যায়।
উদাহরণ:
import java.awt.*;
import java.awt.event.*;
public class CardLayoutExample {
public static void main(String[] args) {
Frame frame = new Frame("CardLayout Example");
CardLayout cardLayout = new CardLayout();
Panel panel = new Panel();
// Set the layout to CardLayout
panel.setLayout(cardLayout);
// Create buttons to add to the card
Button card1 = new Button("Card 1");
Button card2 = new Button("Card 2");
Button card3 = new Button("Card 3");
panel.add(card1, "Card 1");
panel.add(card2, "Card 2");
panel.add(card3, "Card 3");
// Create a Button to switch between cards
Button nextButton = new Button("Next Card");
nextButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cardLayout.next(panel); // Go to the next card
}
});
frame.add(panel, BorderLayout.CENTER);
frame.add(nextButton, BorderLayout.SOUTH);
frame.setSize(400, 300);
frame.setVisible(true);
}
}
ব্যাখ্যা:
- এখানে
CardLayoutব্যবহৃত হয়েছে এবং একটি প্যানেলে তিনটি কার্ড যোগ করা হয়েছে। - "Next Card" বাটনটি ক্লিক করলে কার্ডগুলি সুইচ হবে।
২. GridBagLayout
GridBagLayout হল একটি অত্যন্ত নমনীয় এবং শক্তিশালী লেআউট ম্যানেজার। এটি একটি গ্রিড ব্যবহার করে উপাদানগুলোকে সাজানোর জন্য, যেখানে প্রতিটি উপাদান নির্দিষ্ট সারি এবং কলামে রাখা হয়। তবে, এটি উপাদানগুলোর আকার ও অবস্থান নিয়ন্ত্রণ করতে GridBagConstraints ব্যবহার করে।
ব্যবহার:
GridBagLayoutব্যবহার করা হয় যেখানে উপাদানগুলোর অবস্থান এবং আকারে বড় রকমের কাস্টমাইজেশন প্রয়োজন। উদাহরণস্বরূপ, একটি ফর্মে বিভিন্ন ধরণের ইনপুট ফিল্ড, লেবেল এবং বাটন সাজানোর সময় এটি উপকারী।
উদাহরণ:
import java.awt.*;
public class GridBagLayoutExample {
public static void main(String[] args) {
Frame frame = new Frame("GridBagLayout Example");
frame.setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
// Create components
Label label1 = new Label("Name:");
TextField textField1 = new TextField();
Button button1 = new Button("Submit");
// Setting constraints for label1
constraints.gridx = 0; // column
constraints.gridy = 0; // row
constraints.insets = new Insets(10, 10, 10, 10); // padding
frame.add(label1, constraints);
// Setting constraints for textField1
constraints.gridx = 1; // column
constraints.gridy = 0; // row
frame.add(textField1, constraints);
// Setting constraints for button1
constraints.gridx = 1; // column
constraints.gridy = 1; // row
frame.add(button1, constraints);
// Set frame size and visibility
frame.setSize(400, 200);
frame.setVisible(true);
}
}
ব্যাখ্যা:
- এখানে
GridBagLayoutব্যবহার করা হয়েছে যেখানে তিনটি উপাদান (লেবেল, টেক্সটফিল্ড এবং বাটন) একটি গ্রিডে সাজানো হয়েছে। GridBagConstraintsব্যবহার করে উপাদানগুলোর অবস্থান এবং প্যাডিং নির্ধারণ করা হয়েছে।
সারাংশ
- CardLayout: একাধিক প্যানেল বা ভিউকে কার্ডের মত স্যুইচ করতে ব্যবহার হয়, যেখানে শুধুমাত্র একটি প্যানেল একসাথে দৃশ্যমান থাকে।
- GridBagLayout: গ্রিড ভিত্তিক লেআউট ম্যানেজার, যা উপাদানগুলোর আকার এবং অবস্থান নির্ধারণ করতে নমনীয়তা প্রদান করে।
Read more