เมนูเป็นส่วนประกอบที่ใช้บ่อยที่สุดใน GUI เมนูไม่ใช่คลาสย่อยของคลาส Component และไม่สามารถวางในคอนเทนเนอร์ธรรมดาได้ โดยไม่ถูกจำกัดโดยตัวจัดการเลย์เอาต์และสามารถวางได้ในแถบเมนูเท่านั้น
ส่วนประกอบเมนูประกอบด้วยสามส่วน: แถบเมนู (MenuBar) เมนู (Menu) และรายการเมนู (MenuItem) แถบเมนูประกอบด้วยหลายเมนู และเมนูประกอบด้วยรายการเมนูหลายรายการ โดยทั่วไป แถบเมนูจะอยู่ในหน้าต่าง Frame เพียงเรียกเมธอด setMenuBar() ของคลาส Frame
เมนูที่ใช้กันทั่วไปได้แก่: เมนูแบบเลื่อนลงและเมนูป๊อปอัป (แสดงแยกกันและสามารถปรากฏได้ทุกที่)
1: ขั้นตอนในการสร้างเมนูแบบเลื่อนลง:
1. สร้างแถบเมนู
2. เรียกเมธอด setMenuBar() ของ Frame เพื่อเพิ่มแถบเมนูให้กับ Frame
3. สร้างวัตถุเมนูหลายรายการตามลำดับและเพิ่มลงในแถบเมนู
4. สำหรับแต่ละออบเจ็กต์ Menu ให้สร้างออบเจ็กต์ MenuItem หลายรายการและเพิ่มลงในเมนู
ตัวอย่าง:
คัดลอกรหัสรหัสดังต่อไปนี้:
นำเข้า java.awt.*;
MenuDemo ระดับสาธารณะ {
กรอบฉ;
เมนูบาร์มบ์;
เมนูเมนูไฟล์;
MenuItem mItemNew, mItemOpen, mItemSave;
เมนูสาธิต() {
f = new Frame("ตัวอย่างเมนูของฉัน");
f.setBounds(300, 100, 400, 300);
mb = new MenuBar(); // สร้างแถบเมนู
menuFile = เมนูใหม่ ("ไฟล์");
mItemNew = MenuItem ใหม่ ("ใหม่");
mItemOpen = MenuItem ใหม่ ("เปิด");
menuFile.add(mItemNew);
mItemSave = MenuItem ใหม่ ("บันทึก");
menuFile.add(mItemOpen);
//เพิ่มเส้นแบ่ง
menuFile.addSeparator();
menuFile.add(mItemSave);
mb.add(เมนูไฟล์);
// เพิ่มเมนู "ไฟล์" ลงในแถบเมนู
// setMenuBar: ตั้งค่าแถบเมนูของแบบฟอร์มนี้เป็นแถบเมนูที่ระบุ
f.setMenuBar(mb);
f.setVisible(จริง);
-
โมฆะคงที่สาธารณะ main (String [] args) {
เมนูสาธิตใหม่();
-
-
มีรูปภาพและมีความจริง: (รายการเมนูแบบเลื่อนลงไม่สามารถจับภาพหน้าจอได้)
2: ขั้นตอนในการสร้างเมนูป๊อปอัป:
1. ขั้นแรกให้สร้างเฟรมเวิร์ก JFrame พื้นฐานที่สุด
2. สร้างเมนูป๊อปอัปคลิกขวา (JPopupMenu) และเพิ่มรายการเมนู (JMenuItem) 3. ใช้วิธีการเพิ่มและวิธีการแทรกเพื่อเพิ่มหรือแทรกลงใน JPopupMenu 4. แสดงป๊อปอัปโดยการเรียกวิธีแสดง สอดคล้องกับทริกเกอร์เมนูป๊อปอัป ตรวจสอบเหตุการณ์ MouseEvent ทั้งหมดเพื่อดูว่าเป็นทริกเกอร์เมนูป๊อปอัปหรือไม่ จากนั้นแสดงเมนูป๊อปอัปตามความเหมาะสม
ตัวอย่าง:
คัดลอกรหัสรหัสดังต่อไปนี้:
นำเข้า java.awt.event.*;
นำเข้า javax.swing.*;
คลาสสาธารณะ JPopMenu_Demo ขยาย JFrame {
// การใช้งานเมนูป๊อปอัปเป็นหน้าต่างเล็ก ๆ ที่ปรากฏขึ้นและแสดงชุดตัวเลือก
JPopupMenu ป๊อปอัพเมนู;
JPopMenu_Demo สาธารณะ () {
super("คลิกขวาที่เมนูป๊อปอัป"); // เรียกตัวสร้างคลาสหลัก
// สร้างอินสแตนซ์เมนูป๊อปอัป
popupMenu = JPopupMenu ใหม่ ();
//เพิ่มรายการเมนูลงในเมนู
popupMenu.add(JMenuItem ใหม่("รายการเมนู"));
popupMenu.add(JButton ใหม่("ปุ่ม"));
popupMenu.add(JLabel ใหม่ ("ป้ายกำกับ"));
กิจกรรมของฉัน();
setSize(350, 300); //กำหนดขนาดหน้าต่าง
กำหนดตำแหน่ง (400, 200);
setVisible(true); // ตั้งค่าหน้าต่างให้มองเห็นได้
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //ออกจากโปรแกรมเมื่อปิดหน้าต่าง
-
ส่วนตัวเป็นโมฆะ myEvents () {
//การจัดการเหตุการณ์ของเมาส์หน้าต่าง
addMouseListener (MouseAdapter ใหม่ () {
//คลิกเมาส์
โมฆะสาธารณะ mousePressed (เหตุการณ์ MouseEvent) {
//เรียกเมธอด triggerEvent เพื่อจัดการเหตุการณ์
triggerEvent (เหตุการณ์);
-
//ปล่อยเมาส์
โมฆะสาธารณะ mouseReleased (เหตุการณ์ MouseEvent) {
triggerEvent (เหตุการณ์);
-
โมฆะส่วนตัว triggerEvent (เหตุการณ์ MouseEvent) { // จัดการเหตุการณ์
// isPopupTrigger(): ส่งคืนว่าเหตุการณ์เมาส์นี้จะทริกเกอร์เหตุการณ์สำหรับเมนูป๊อปอัปของแพลตฟอร์มหรือไม่
ถ้า (event.isPopupTrigger())
// แสดงเมนู
popupMenu.show(event.getComponent(), event.getX(),
event.getY());
-
-
-
โมฆะคงสาธารณะ main (String args []) {
ใหม่ JPopMenu_Demo();
-
-
มีภาพและความจริง (แต่น่าเกลียดมาก)
สาม: รูปแบบแท็บ:
1.คำแนะนำพื้นฐาน:
2. วิธีการที่ใช้กันทั่วไป:
เราเพิ่มวัตถุ JPanel หลายรายการใน JTabbedPanel แล้วอีกครั้ง
เพิ่ม JTabbedPanel ลงในแบบฟอร์ม โดยมีโค้ดดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
JTabbedPane jp=new JTabbedPane(JTabbedPane.LEFT); // ตั้งค่าพิกัดของแท็บ
JPanel p1=JPanel ใหม่();
JPanel p2=JPanel ใหม่();
JPanel p3=JPanel ใหม่();
JPanel p4=new JPanel(); //สร้างหลายคอนเทนเนอร์
jp.add("Form1", p1);
jp.add("แบบฟอร์ม 2", p2);
jp.add("Form 3", p3);//เพิ่มคอนเทนเนอร์ย่อยและเพิ่มชื่อให้กับแท็บ
this.add(jp,BorderLayout.CENTER); //เพิ่มแบบฟอร์มแท็บลงในแบบฟอร์มหลัก
3. ตัวอย่างโค้ดและภาพหน้าจอ:
คัดลอกรหัสรหัสดังต่อไปนี้:
นำเข้า java.awt.*;
นำเข้า javax.swing.*;
-
* <p>หัวข้อ: การสาธิตแท็บ</p>
* <p>คำอธิบาย: นี่คือการสาธิตแท็บ คลิกที่การ์ดต่างๆ เพื่อแสดงเนื้อหาที่แตกต่างกัน</p>
-
คลาสสาธารณะ JTabbedPaneDemo1 ขยาย JPanel {
JTabbedPaneDemo1 สาธารณะ () {
สุดยอด (GridLayout ใหม่ (1, 1));
ไอคอน ImageIcon = createImageIcon("images/MyIcon.gif");
JTabbedPane tabbedPane = ใหม่ JTabbedPane();
ส่วนประกอบแผง 1 = makeTextPanel("#บัตรใบแรก#");
tabbedPane.addTab("หนึ่ง", ไอคอน, แผง1, "ข้อมูลแจ้งการ์ดใบแรก!");
tabbedPane.setSelectedIndex (0);
ส่วนประกอบแผง2 = makeTextPanel("##การ์ดใบที่สอง##");
tabbedPane.addTab("สอง", ไอคอน, แผง2, "ข้อมูลแจ้งการ์ดใบที่สอง!");
Component panel3 = makeTextPanel("###ไพ่ใบที่สาม###");
tabbedPane.addTab("สาม", ไอคอน, แผง3, "ข้อมูลแจ้งการ์ดใบที่สาม!");
Component panel4 = makeTextPanel("####ไพ่ใบที่สี่####");
tabbedPane.addTab("สี่", ไอคอน, แผง4, "ข้อมูลแจ้งการ์ดใบที่สี่!");
//เพิ่มแท็บไปที่ panl
เพิ่ม (แผงแท็บ);
-
-
* <br>
* คำอธิบายวิธีการ: เพิ่มข้อมูลลงในแท็บ<br>
* พารามิเตอร์อินพุต: ข้อความสตริงที่แสดงเนื้อหาข้อมูล<br>
* ประเภทการส่งคืน: วัตถุสมาชิกคอมโพเนนต์
-
ส่วนประกอบที่ได้รับการป้องกัน makeTextPanel (ข้อความสตริง) {
แผง JPanel = JPanel ใหม่ (เท็จ);
JLabel filler = JLabel ใหม่ (ข้อความ);
filler.setHorizontalAlignment(JLabel.CENTER);
แผง setLayout (GridLayout ใหม่ (1, 1));
แผง. เพิ่ม (ฟิลเลอร์);
แผงกลับ;
-
-
* <br>
*คำอธิบายวิธีการ: รับภาพ<br>
* พารามิเตอร์อินพุต: เส้นทางรูปภาพเส้นทางสตริง<br>
* ประเภทการส่งคืน: วัตถุรูปภาพ ImageIcon
-
ป้องกัน ImageIcon แบบคงที่ createImageIcon (เส้นทางสตริง) {
// java.net.URL imgURL = TabbedPaneDemo.class.getResource(path);
ถ้า (เส้นทาง != null) {
ส่งคืน ImageIcon ใหม่ (เส้นทาง);
} อื่น {
System.out.println("ไม่พบไฟล์: " + path);
กลับเป็นโมฆะ;
-
-
โมฆะคงที่สาธารณะ main (String [] args) {
// ใช้คำอธิบายแบบฟอร์มสวิง
// JFrame.setDefaultLookAndFeelDecorated(จริง);
พยายาม {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} จับ (ข้อยกเว้นจ) {
-
//สร้างแบบฟอร์ม
JFrame frame = ใหม่ JFrame("TabbedPaneDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(JTabbedPaneDemo1(), BorderLayout.CENTER ใหม่);
//แสดงแบบฟอร์ม
frame.setSize(400, 200);
frame.setVisible(จริง);
-
-