1 / 16

การสร้างส่วนติดต่อกับผู้ใช้ (5) การสร้างเมนู

การสร้างส่วนติดต่อกับผู้ใช้ (5) การสร้างเมนู. การสร้างเมนู. มีคลาสที่เกี่ยวข้องกับการสร้างเมนูดังนี้ JMenuBar ใช้สร้างแถบเมนู ด้านบน ( จะได้พื้นที่ขาวๆ เปล่าๆ ) JMenu ใช้สร้างรายการกลุ่ม เมนู ( ในภาพบนมี 3 ตัว คือ A Menu, Another Menu, A submenu )

Download Presentation

การสร้างส่วนติดต่อกับผู้ใช้ (5) การสร้างเมนู

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การสร้างส่วนติดต่อกับผู้ใช้ (5)การสร้างเมนู

  2. การสร้างเมนู มีคลาสที่เกี่ยวข้องกับการสร้างเมนูดังนี้ • JMenuBarใช้สร้างแถบเมนูด้านบน (จะได้พื้นที่ขาวๆ เปล่าๆ) • JMenu ใช้สร้างรายการกลุ่มเมนู (ในภาพบนมี 3 ตัวคือ A Menu, Another Menu, A submenu) • JMenuItem ใช้สร้างเมนูย่อย ที่เป็นเมนูลูกตัวสุดท้าย (ในภาพบนมี5 ตัวคือ A text-only menu item, An item in the submenu, Another item และเมนูที่มีรูปภาพด้านหน้าอีก 2 อัน) • JCheckboxMenuItem ใช้สร้างเมนูแบบcheckbox (ภาพบนมี 2 ตัว) • JRadioButtonMenuItem ใช้สร้างเมนูแบบ radiobutton (ภาพบนมี 2 ตัว) • JSeparatorใช้สร้างเส้นคั่นรายการเมนู

  3. JMenuBar • ใช้สร้างแถบเมนูด้านบน มี constructor ดังนี้ public JMenuBar() • ตัวอย่าง myMenuBar = new JMenuBar(); • การใช้งาน สามารถใส่ออบเจ็กต์ของคลาสJMenuBarลงใน Frame ได้โดยใช้เมธอดsetJMenuBar() • ตัวอย่าง this.setJMenuBar(myMenuBar);

  4. JMenu • ใช้สร้างรายการกลุ่มเมนู • constructor ที่สำคัญคือ public JMenu(String label); • ตัวอย่าง menuFood = new JMenu("Food"); • การใช้งาน ต้องใส่ออบเจ็กต์ของคลาสJMenu ลงใน JMenuBar โดยใช้เมธอด add() • ตัวอย่าง myMenuBar.add(menuFood);

  5. JMenuItem • ใช้สร้างเมนูย่อยสุดที่เป็นเมนูลูก • constructor ที่สำคัญ public JMenuItem(String label); • ตัวอย่าง miChickenSteak = new JMenuItem("Chicken steak"); • การใช้งาน ให้ใส่menuItemลงไปใน menu อีกทีหนึ่งด้วยเมธอด add()

  6. การใส่รูปภาพให้กับJMenu, JMenuItem • สามารถใส่รูปภาพ icon ให้กับเมนูได้โดยใช้คำสั่งsetIcon ตัวอย่าง menuFood.setIcon(new ImageIcon("./icon/food.jpg"));

  7. การกำหนด Mnemonic code • คือการกำหนดคีย์ที่เป็น shortcut ให้กับเมนู โดยใช้คำสั่งsetMnemonic() ตัวอย่าง miChickenNoodle.setMnemonic(KeyEvent.VK_C); หมายถึง เมื่อกด key ตัว C ในคีย์บอร์ดจะเป็นการเลือกเมนูนี้

  8. JCheckBoxMenuItem • ใช้สร้างรายการเมนูแบบ checkbox • Constructor ที่สำคัญ public JCheckBoxMenuItem(String label) public JCheckBoxMenuItem(String label, boolean state)

  9. ขั้นตอนการสร้างเมนู • สร้างออบเจ็กต์ของคลาสJMenuBarแล้วใส่ลงไปในJframe ใช้คำสั่งsetJMenuBar() • สร้างออบเจ็กต์ของคลาสJMenuแล้วใส่ลงไปในJMenuBarใช้คำสั่ง add() • สร้างออบเจ็กต์ของคลาสJMenuItemแล้วใส่ลงไปในJmenuใช้คำสั่ง add()

  10. ตัวอย่างการสร้างเมนู

  11. public class MenuTest extends JFrame{ //1.ประกาศชื่อออบเจ็กต์ต่างๆ ที่จำเป็นต้องใช้ในโปรแกรม private JMenuBarmyMenuBar; private JMenumenuFood, menuDrink, menuNoodle, menuSteak; private JMenuItemmiChickenNoodle, miFishNoodle, miChickenSteak, miFishSteak; private JPanel p; private JTextArea ta; private JScrollPanesp; //2.เขียน constructor methodเพื่อเริ่มต้นการทำงานขอบออบเจ็กต์ public MenuTest() { buildMenu();//เรียกเมธอดเพื่อสร้างเมนู buildPanel();//เรียกเมธอดเพื่อสร้างพาเนล this.setLayout(new BorderLayout()); this.add(p, BorderLayout.CENTER); this.setTitle("IT Restaurant"); setSize(300,300); setLocationRelativeTo(null); //ให้วินโดวส์อยู่กลางหน้าจอ setVisible(true); } //end constructor

  12. //3.เขียนเมธอดเพื่อสร้างเมนู//3.เขียนเมธอดเพื่อสร้างเมนู public void buildMenu() { //3.1สร้าง newออบเจ็บต์ต่างๆ ที่จำเป็นต้องใช้โปรแกรม myMenuBar= new JMenuBar(); menuFood= new JMenu("Food"); menuDrink= new JMenu("Drink"); menuNoodle= new JMenu("Noodle"); menuSteak= new JMenu("Steak"); miChickenNoodle = new JMenuItem("Chicken noodle”); miFishNoodle= new JMenuItem("Fish noodle“); miChickenSteak= new JMenuItem("Chicken steak"); miFishSteak= new JMenuItem("Fish steak"); //3.2 ใส่รูปภาพให้เมนู menuFood.setIcon(new ImageIcon("./icon/food.jpg")); menuDrink.setIcon(new ImageIcon("./icon/drink.jpg")); miChickenNoodle.setIcon(new ImageIcon("./icon/noodlechicken.jpg")); miFishNoodle.setIcon(new ImageIcon("./icon/noodlefish.jpg")); miChickenNoodle.setMnemonic(KeyEvent.VK_C);//กำหนด mnemonic code miFishNoodle.setMnemonic(KeyEvent.VK_F); //กำหนด mnemonic code

  13. // 3.3 เขียนดักจับeventให้กับmenuItem miChickenNoodle.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { // method getTextเพื่อดึงข้อความเดิมที่อยู่ในtextareaออกมา // method setTextเพื่อกำหนดค่าข้อความใหม่ลงไปในtextarea ta.setText(ta.getText() + "You order chicken noodle.\n"); } }); miFishNoodle.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { ta.setText(ta.getText() + "You order fish noodle.\n"); } });

  14. //3.4add เมนูต่างๆ ลงไป myMenuBar.add(menuFood); myMenuBar.add(menuDrink); menuFood.add(menuNoodle); menuFood.addSeparator(); menuFood.add(menuSteak); menuNoodle.add(miChickenNoodle); menuNoodle.add(miFishNoodle); menuSteak.add(miChickenSteak); menuSteak.add(miFishSteak); //**สำคัญ** เพิ่มmenuBarลงไปในFrame this.setJMenuBar(myMenuBar); }//end buildMenu()

  15. //4.สร้างเมธอดbuildPanel public void buildPanel() { p = new JPanel(new BorderLayout()); ta = new JTextArea(); sp= new JScrollPane(ta);//รวมให้textareaมี scrollbarด้วย //แล้ว add scrollpaneลงไปในpanel p.add(sp, BorderLayout.CENTER); } //5.เขียน main เพื่อเริ่มต้นทำงานโปรแกรม public static void main(String[] args) { MenuTestmt = new MenuTest(); }

  16. แบบฝึกหัด • เขียนโปรแกรม Notepad โดยมีเมนูดังนี้ หมายเหตุ เปลี่ยนสีตัวอักษรใช้คำสั่งta.setForeground(Color.red); เปลี่ยน font ใช้คำสั่ง Font newfont = new Font(“Serif”,Font.Plain, 20); ta.setFont(newfont);

More Related