AWT (Abstract Window Toolkit)-এ PopupMenu এবং Context Menu দুটি ইন্টারফেস উপাদান যা সাধারণত ব্যবহারকারীর দ্বারা একটি বিশেষ কাজ বা নির্বাচন করার জন্য ব্যবহৃত হয়। এই দুটি মেনু সাধারণত মাউস রাইট ক্লিকের মাধ্যমে প্রদর্শিত হয় এবং এদের ব্যবহারকারীর ইন্টারঅ্যাকশনকে সহজ করে।
1. PopupMenu:
PopupMenu হলো একটি মেনু যা সাধারণত মাউসের ডান বাটন (right-click) ক্লিক করার পর প্রদর্শিত হয়। এটি সাধারণত এমন অবস্থায় ব্যবহৃত হয় যেখানে মেনু অপশনগুলি কোনও নির্দিষ্ট স্থানে বা কন্টেক্সটে ব্যবহারকারীর জন্য দরকারি হয়।
PopupMenu তৈরি:
AWT-এ PopupMenu তৈরি করার জন্য, PopupMenu ক্লাস ব্যবহার করা হয় এবং এটি MenuItem ক্লাসের মাধ্যমে মেনু অপশন যোগ করা হয়। এছাড়া, PopupMenu-কে add() মেথডের মাধ্যমে ফ্রেমে যুক্ত করা হয়।
PopupMenu উদাহরণ:
import java.awt.*;
import java.awt.event.*;
public class PopupMenuExample {
public static void main(String[] args) {
Frame frame = new Frame("PopupMenu Example");
// Create a PopupMenu
PopupMenu popupMenu = new PopupMenu();
// Create MenuItems
MenuItem item1 = new MenuItem("Open");
MenuItem item2 = new MenuItem("Save");
MenuItem item3 = new MenuItem("Exit");
// Add MenuItems to the PopupMenu
popupMenu.add(item1);
popupMenu.add(item2);
popupMenu.add(item3);
// Add PopupMenu to the Frame
frame.add(popupMenu);
// Add MouseListener to show the PopupMenu on right-click
frame.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
popupMenu.show(frame, e.getX(), e.getY());
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
popupMenu.show(frame, e.getX(), e.getY());
}
}
});
// Frame settings
frame.setSize(300, 200);
frame.setLayout(null);
frame.setVisible(true);
}
}
এখানে PopupMenu তৈরি করা হয়েছে এবং এতে তিনটি MenuItem যোগ করা হয়েছে। যখন ব্যবহারকারী মাউসের ডান বাটন ক্লিক করবে, তখন এই মেনু প্রদর্শিত হবে।
2. Context Menu:
Context Menu হল একটি বিশেষ ধরনের মেনু যা সাধারণত PopupMenu হিসেবে কাজ করে, কিন্তু এটি সাধারণত নির্দিষ্ট কন্টেক্সটে প্রদর্শিত হয়, যেমন একটি ফাইল বা একটি টেক্সট এরিয়া। Context Menu এবং PopupMenu এর মধ্যে প্রায় কোনো বড় পার্থক্য নেই, তবে Context Menu শব্দটি সাধারণত এমন মেনুর জন্য ব্যবহৃত হয় যা নির্দিষ্ট কন্টেক্সটের উপর নির্ভরশীল।
Context Menu উদাহরণ:
import java.awt.*;
import java.awt.event.*;
public class ContextMenuExample {
public static void main(String[] args) {
Frame frame = new Frame("ContextMenu Example");
// Create a Context Menu (PopupMenu)
PopupMenu contextMenu = new PopupMenu();
// Create MenuItems
MenuItem copyItem = new MenuItem("Copy");
MenuItem pasteItem = new MenuItem("Paste");
MenuItem deleteItem = new MenuItem("Delete");
// Add MenuItems to the PopupMenu
contextMenu.add(copyItem);
contextMenu.add(pasteItem);
contextMenu.add(deleteItem);
// Add PopupMenu to the Frame
frame.add(contextMenu);
// Add MouseListener to show the ContextMenu on right-click
frame.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
contextMenu.show(frame, e.getX(), e.getY());
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
contextMenu.show(frame, e.getX(), e.getY());
}
}
});
// Frame settings
frame.setSize(300, 200);
frame.setLayout(null);
frame.setVisible(true);
}
}
এখানে Context Menu হিসেবে PopupMenu ব্যবহৃত হয়েছে এবং এতে কপি, পেস্ট, এবং ডিলিট অপশন যুক্ত করা হয়েছে। মাউসের ডান বাটন ক্লিক করলে এই কন্টেক্সট মেনু প্রদর্শিত হবে।
PopupMenu এবং Context Menu এর মধ্যে পার্থক্য:
| বৈশিষ্ট্য | PopupMenu | Context Menu |
|---|---|---|
| উদ্দেশ্য | সাধারণত মাউস রাইট ক্লিক বা বিশেষ কন্টেক্সটের জন্য ব্যবহার করা হয় | নির্দিষ্ট কন্টেক্সটে (যেমন, ফাইল বা টেক্সট) ব্যবহার করা হয় |
| ব্যবহার | PopupMenu সাধারণত একাধিক সাধারণ কাজের জন্য ব্যবহৃত হয় | Context Menu নির্দিষ্ট কাজ বা অবস্থা অনুযায়ী তৈরি হয় |
| উপাদান | PopupMenu একটি সাধারণ মেনু যা MenuItem ধারণ করে | Context Menu হলো PopupMenu যা কন্টেক্সট-ভিত্তিক অপশন ধারণ করে |
সারাংশ:
- PopupMenu সাধারণভাবে মাউস রাইট ক্লিক করার মাধ্যমে প্রদর্শিত হয় এবং একাধিক সাধারণ অপশন ধারণ করে।
- Context Menu একটি বিশেষ ধরনের PopupMenu, যা সাধারণত নির্দিষ্ট কন্টেক্সট (যেমন, ফাইল, টেক্সট বক্স ইত্যাদি) অনুযায়ী ব্যবহৃত হয়।
এ দুটি মেনু ব্যবহারের মাধ্যমে আপনি একটি পরিষ্কার এবং ব্যবহারকারী-বান্ধব ইন্টারফেস তৈরি করতে পারবেন।
Read more