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);
}
});
}
}
ব্যাখ্যা:
- এখানে একটি
Dialogতৈরি করা হয়েছে যা একটিFrameএর উপরে প্রদর্শিত হবে।Dialogএর শিরোনাম, সাইজ, এবং কন্টেন্ট কাস্টমাইজ করা হয়েছে। FlowLayoutব্যবহার করা হয়েছে যাতে উপাদানগুলো (Label, Button) স্বাভাবিকভাবে এলাইন হয়।- 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);
}
});
}
}
ব্যাখ্যা:
PopupMenuতৈরি করা হয়েছে এবং মেনু আইটেমগুলো যোগ করা হয়েছে।MouseAdapterএর মাধ্যমে মাউসের রাইট ক্লিকের মাধ্যমে পপআপ মেনু প্রদর্শিত হয়।- 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 কন্ট্রোল এবং স্টাইলিং সুবিধা প্রদান করে।
Read more