القوائم هي المكونات الأكثر استخدامًا في واجهات المستخدم الرسومية. القوائم ليست فئات فرعية من فئة المكون ولا يمكن وضعها في حاويات عادية ولا يتم تقييدها بواسطة مدير التخطيط ولا يمكن وضعها إلا في شريط القائمة.
يتكون مكون القائمة من ثلاثة أجزاء: شريط القائمة (MenuBar)، القائمة (Menu) وعنصر القائمة (MenuItem). يتكون شريط القائمة من عدة قوائم، وتتكون القائمة من عدة عناصر قائمة. بشكل عام، يتم وضع شريط القائمة في نافذة الإطار، فقط قم باستدعاء طريقة setMenuBar() لفئة الإطار.
تتضمن القوائم شائعة الاستخدام ما يلي: القوائم المنسدلة والقوائم المنبثقة (يتم عرضها بشكل مستقل ويمكن أن تظهر في أي مكان).
1: خطوات إنشاء القائمة المنسدلة:
1. قم بإنشاء شريط القوائم.
2. قم باستدعاء طريقة setMenuBar() الخاصة بالإطار لإضافة شريط القائمة إلى الإطار.
3. قم بإنشاء العديد من كائنات القائمة على التوالي وأضفها إلى MenuBar.
4. لكل كائن قائمة، قم بإنشاء العديد من كائنات MenuItem وأضفها إلى القائمة.
مثال:
انسخ رمز الكود كما يلي:
import java.awt.*;
عرض القائمة للطبقة العامة {
الإطار و؛
MenuBarmb;
القائمة ملف القائمة؛
MenuItem mItemNew، mItemOpen، mItemSave؛
القائمة التجريبية () {
f = new Frame("مثيل قائمتي");
f.setBounds(300, 100, 400, 300);
mb = new MenuBar(); // إنشاء شريط القائمة
MenuFile = new Menu("File");
mItemNew = new MenuItem("New");
mItemOpen = new MenuItem("Open");
MenuFile.add(mItemNew);
mItemSave = new MenuItem("حفظ");
MenuFile.add(mItemOpen);
// أضف خط فاصل
MenuFile.addSeparator();
MenuFile.add(mItemSave);
mb.add(menuFile);
// أضف قائمة "ملف" إلى شريط القائمة
// setMenuBar: اضبط شريط القائمة لهذا النموذج على شريط القائمة المحدد.
f.setMenuBar(mb);
f.setVisible(true);
}
public static void main(String[] args) {
new MenuDemo();
}
}
هناك صور وهناك حقائق: (عناصر القائمة المنسدلة لا يمكن أن تكون لقطات شاشة)
2: خطوات إنشاء القائمة المنبثقة:
1. قم أولاً بإنشاء إطار عمل JFrame الأساسي.
2. قم بإنشاء قائمة منبثقة انقر بزر الماوس الأيمن (JPopupMenu) وأضف عنصر القائمة (JMenuItem). 3. استخدم طريقة الإضافة وطريقة الإدراج لإضافة أو إدراج في JPopupMenu المطابق لمشغل القائمة المنبثقة، وتحقق من جميع أحداث MouseEvent لمعرفة ما إذا كانت مشغلات قائمة منبثقة، ثم قم بعرض القائمة المنبثقة عندما يكون ذلك مناسبًا.
مثال:
انسخ رمز الكود كما يلي:
import java.awt.event.*;
استيراد javax.swing.*;
الطبقة العامة JPopMenu_Demo تمتد JFrame {
// تنفيذ القائمة المنبثقة هي نافذة صغيرة تنبثق وتعرض سلسلة من الخيارات.
JPopupMenu popupMenu؛
عامة JPopMenu_Demo() {
super("انقر بزر الماوس الأيمن على القائمة المنبثقة"); // اتصل بمنشئ الفئة الأصل
// إنشاء مثيل للقائمة المنبثقة
popupMenu = new JPopupMenu();
// أضف عناصر القائمة إلى القائمة
popupMenu.add(new JMenuItem("عنصر القائمة"));
popupMenu.add(new JButton("Button"));
popupMenu.add(new JLabel("Label"));
myEvents();
setSize(350, 300); //ضبط حجم النافذة
setLocation(400, 200);
setVisible(true); // اضبط النافذة لتكون مرئية
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // الخروج من البرنامج عند إغلاق النافذة
}
باطلة خاصة myEvents () {
// التعامل مع حدث ماوس النافذة
addMouseListener(new MouseAdapter() {
//انقر بالماوس
الماوس العام الفارغ (حدث MouseEvent) {
// اتصل بطريقة TriggerEvent للتعامل مع الحدث
TriggerEvent(event);
}
// الافراج عن الماوس
mouseReleased باطل عام (حدث MouseEvent) {
TriggerEvent(event);
}
Private void TriggerEvent(MouseEvent events) { // التعامل مع الأحداث
// isPopupTrigger(): يُرجع ما إذا كان حدث الماوس هذا قد أدى إلى تشغيل حدث في القائمة المنبثقة للنظام الأساسي.
إذا (event.isPopupTrigger())
// عرض القائمة
popupMenu.show(event.getComponent(), events.getX(),
this.event.getY());
}
});
}
public static void main(String args[]) {
جديد JPopMenu_Demo();
}
}
هناك صور والحقيقة (لكنها قبيحة جدًا)
ثالثاً: نموذج علامة التبويب:
1. التعليمات الأساسية:
2. الطرق شائعة الاستخدام:
نضيف كائنات JPanel متعددة إلى JTabbedPanel. ثم مرة أخرى
أضف JTabbedPanel إلى النموذج، الكود كما يلي:
انسخ رمز الكود كما يلي:
JTabbedPane jp=new JTabbedPane(JTabbedPane.LEFT); // تعيين إحداثيات علامة التبويب
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel(); // إنشاء حاويات متعددة
jp.add("Form1", p1);
jp.add("النموذج 2"، p2);
jp.add("Form 3"، p3);// أضف حاوية فرعية وأضف اسمًا إلى علامة التبويب
this.add(jp,BorderLayout.CENTER); // أضف نموذج علامة التبويب إلى النموذج الرئيسي
3. أمثلة التعليمات البرمجية ولقطات الشاشة:
انسخ رمز الكود كما يلي:
import java.awt.*;
استيراد javax.swing.*;
/**
* <p>العنوان: عرض علامة التبويب</p>
* <p>الوصف: إليك عرض توضيحي لعلامة التبويب انقر على بطاقات مختلفة لعرض محتوى مختلف</p>
*/
الطبقة العامة JTabbedPaneDemo1 تمتد JPanel {
عامة JTabbedPaneDemo1() {
super(new GridLayout(1, 1));
ImageIcon icon = createImageIcon("images/MyIcon.gif");
JTabbedPane tabbedPane = new JTabbedPane();
Component Panel1 = makeTextPanel("#First Card#");
tabbedPane.addTab("One"، أيقونة، لوحة 1، "معلومات المطالبة بالبطاقة الأولى!");
tabbedPane.setSelectedIndex(0);
Component Panel2 = makeTextPanel("##Second Card##");
tabbedPane.addTab("اثنين"، أيقونة، لوحة 2، "معلومات المطالبة بالبطاقة الثانية!")؛
Component Panel3 = makeTextPanel("###البطاقة الثالثة###");
tabbedPane.addTab("ثلاثة"، أيقونة، لوحة 3، "معلومات المطالبة بالبطاقة الثالثة!");
Component Panel4 = makeTextPanel("####البطاقة الرابعة####");
tabbedPane.addTab("أربعة"، أيقونة، لوحة 4، "معلومات المطالبة بالبطاقة الرابعة!");
// أضف علامة تبويب إلى panl
add(tabbedPane);
}
/**
*<br>
* وصف الطريقة: إضافة معلومات إلى علامة التبويب<br>
* معلمة الإدخال: نص السلسلة محتوى المعلومات المعروض<br>
* نوع الإرجاع: كائن عضو مكون
*/
المكون المحمي makeTextPanel (نص السلسلة) {
لوحة JPanel = new JPanel(false);
حشو JLabel = جديد JLabel(text);
filler.setHorizontalAlignment(JLabel.CENTER);
Panel.setLayout(new GridLayout(1, 1));
Panel.add(filler);
لوحة العودة
}
/**
*<br>
*وصف الطريقة: احصل على الصورة<br>
* معلمات الإدخال: مسار صورة مسار السلسلة<br>
* نوع الإرجاع: كائن صورة ImageIcon
*/
ImageIcon ثابت محمي createImageIcon(مسار السلسلة) {
// java.net.URL imgURL = TabbedPaneDemo.class.getResource(path);
إذا (المسار! = فارغ) {
إرجاع ImageIcon جديد (path)؛
} آخر {
System.out.println("تعذر العثور على الملف:" + المسار);
عودة فارغة؛
}
}
public static void main(String[] args) {
// استخدم وصف نموذج التأرجح
// JFrame.setDefaultLookAndFeelDecorated(true);
يحاول {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} قبض (الاستثناء ه) {
}
// إنشاء النموذج
JFrameframe = new JFrame("TabbedPaneDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new JTabbedPaneDemo1(), BorderLayout.CENTER);
// نموذج العرض
frame.setSize(400, 200);
frame.setVisible(true);
}
}