Swingطريقة إظهار قائمة JPopupMenu
عند النقر على زر الفأرة الأيمن
المثال التالي يعلمك طريقة إنشاء قائمة ( Popup Menu ) تظهر عند النقر على زر الفأرة الأيمن ( Right Click ).
هذه القائمة تسمح للمستخدم بأن يقوم بنسخ, قص, لصق و تحديد المحتوى.
مثال
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPopupMenu; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingUtilities; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JPopupMenu demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(400, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 300 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج // الحاجة Scroll Bar لتظهر ScrollPane و وضعناها بداخل Text Area هنا قمنا بتعريف JTextArea textArea = new JTextArea(); JScrollPane textAreaScroller = new JScrollPane(textArea); // و الذي يمثل قائمة منبثقة JPopupMenu هنا قمنا بتعريف كائن من الكلاس JPopupMenu popupMenu = new JPopupMenu(); // هنا قمنا بتعريف العناصر التي سنضعها في القائمة JMenuItem cut = new JMenuItem("Cut"); JMenuItem copy = new JMenuItem("Copy"); JMenuItem paste = new JMenuItem("Paste"); JMenuItem selectAll = new JMenuItem("Select All"); // في القائمة المنبثقة select و paste ,copy ,cut هنا قمنا بوضع العناصر popupMenu.add(cut); popupMenu.add(copy); popupMenu.add(paste); popupMenu.addSeparator(); // هنا أضفا خط فاصل popupMenu.add(selectAll); // و بالتالي ربطنا بها textArea هنا وضعنا القائمة المنبثقة في الـ textArea.add(popupMenu); // frame في الـ textAreaScroller هنا قمنا بوضع الـ frame.add(textAreaScroller); // في القائمة cut هنا نضع الأوامر التي ستنفذ عند النقر على العنصر cut.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // هنا قلنا أنه سيتم قص المحتوى الذي قام المستخدم بتحديده textArea.cut(); } }); // في القائمة copy هنا نضع الأوامر التي ستنفذ عند النقر على العنصر copy.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // هنا قلنا أنه سيتم نسخ المحتوى الذي قام المستخدم بتحديده textArea.copy(); } }); // في القائمة paste هنا نضع الأوامر التي ستنفذ عند النقر على العنصر paste.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // هنا قلنا أنه سيتم لصق المحتوى الذي قام المستخدم بقصه أو نسخه textArea.paste(); } }); // في القائمة selectAll هنا نضع الأوامر التي ستنفذ عند النقر على العنصر selectAll.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // Text Area هنا قلنا أنه سيتم تحديد كامل محتوى الـ textArea.selectAll(); } }); // textArea هنا نضع الأوامر التي ستنفذ عند النقر على الـ textArea.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e) { // إذا قام المستخدم بالنقر على زر الفأرة الأيمن سيتم إظهار القائمة في المكان الذي نقر فيه if( SwingUtilities.isRightMouseButton(e) ) popupMenu.show(textArea, e.getX(), e.getY()); } }); // مرئية frame هنا جعلنا الـ frame.setVisible(true); } }
ستظهر لك النافذة التالية عند التشغيل.
لإظهار القائمة, أنقر بزر الفأرة الأيمن على أي مكان في الـ Text Area.