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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Lab Part Nattee Niparnan
Component องค์ประกอบของ GUI.
Swing Component Basic Component.
Introduction to Java Graphic 2D
ปฏิบัติการที่ 4 การใช้โปรแกรมประมวลผลคำ
HTML Language ภาษา HTML คืออะไร ? HTML (Hyper Text Markup Language) เป็นภาษาที่ใช้ในการพัฒนา web page เพื่อให้โปรแกรม web brower ต่างๆ (Internet Explorer,
05_3_Constructor.
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
Lecturer: Kanjana Thongsanit
Selected Topics in IT (Java)
การสืบทอด (Inheritance)
ส่วนประกอบของโปรแกรม
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (2).
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
คลาสและวัตถุ (4) (Class & Object)
ทบทวนเรื่อง GUI - กลุ่มคำสั่ง AWT Set (Abstract Windowing Toolkit) และ
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
การสร้าง Digital Video ด้วย Window Movie Maker
Suphot Sawattiwong Sprite Suphot Sawattiwong
Inheritance การสืบทอดคลาส
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
รู้จักและใช้งาน Applet
ทำงานกับ File และStream
การสร้างเหตุการณ์ click ให้กับปุ่มกด Button
คำสั่งควบคุมการ ทำงาน การเขียนโปรแกรมโดยปกติ มีทั้งให้ทำงาน เป็นลำดับ ที่ละคำสั่ง บางครั้งมีการให้เปลี่ยน ลำดับในการทำคำสั่ง เพื่อให้การเขียน โปรแกรมมีประสิทธิภาพสูงสุด.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved JTextArea Constructors 
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Swing GUI Components.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Method of Class อ.สุพจน์ สิงหัษฐิต
Java Desktop Application #4
Java Desktop Application #5
เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader
วิชาคอมพิวเตอร์กราฟิก intro_vb_net_06 การสร้างกราฟเส้นตรงด้วย VB.NET
การประมวลผลสายอักขระ
บทที่ 4 การทำงานกับรายงาน (Report)
Object-Oriented Programming
Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Iterator Week #11 Jarungjit Parnjai.
การใช้งาน High Level API : List
Graphical User Interface (GUI)
บทที่ 3 Class and Object (2).
บทที่ 3 การสร้าง Appication แบบ Windows Form
การเขียนโปรแกรมสั่งงานตัวควบคุม (Control)
บทที่ 2 การแสดงผลและรับข้อมูล
พื้นฐานเกี่ยวกับโปรแกรม Flash CS3
Java Programming Java Structure and Datatype,Variable
บทที่ 9 การใช้งานฟอร์มและคอนโทรลต่าง ๆ
การจัดวางคอมโพเนนต์กราฟิก
เริ่มต้น Photoshop CS5.
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
รู้จักและใช้งาน Applet
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
ให้ทำการเขียนโปรแกรมเพื่อแสดงรูปภาพ ดังนี้
บทที่ สร้างงานเอกสารและการแก้ไข
คอนสตรัคเตอร์ (Constructor)
อ.วิวัฒน์ ชินนาทศิริกุล
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
Chapter 6 Abstract Class and Interface
โดย ส.อ.ประกาศิต วรนุช วิททยาลัยเฉลิมกาณจนา
การสร้างเมนูเข้าสู่บทความ. เป็นการสร้างเมนูเพื่อเชื่อมโยงเข้าสู่บทความที่ สร้างไว้ภายในเว็บไซต์ ซึ่งสามารถสร้างเมนูได้ ดังนี้ – การสร้างเมนูเข้าสู่บทความที่ถูกพักการใช้งาน.
Graphic User Interface (GUI)
ใบสำเนางานนำเสนอ:

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

การสร้างเมนู มีคลาสที่เกี่ยวข้องกับการสร้างเมนูดังนี้ 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 ใช้สร้างเส้นคั่นรายการเมนู

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

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

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

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

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

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

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

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

public class MenuTest extends JFrame{ //1 public class MenuTest extends JFrame{ //1.ประกาศชื่อออบเจ็กต์ต่างๆ ที่จำเป็นต้องใช้ในโปรแกรม private JMenuBar myMenuBar; private JMenu menuFood, menuDrink, menuNoodle, menuSteak; private JMenuItem miChickenNoodle, miFishNoodle, miChickenSteak, miFishSteak; private JPanel p; private JTextArea ta; private JScrollPane sp; //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

miChickenSteak = new JMenuItem("Chicken steak"); //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

miChickenNoodle.addActionListener(new ActionListener() { // 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() { ta.setText(ta.getText() + "You order fish noodle.\n");

//3. 4 add เมนูต่างๆ ลงไป myMenuBar. add(menuFood); myMenuBar //3.4 add เมนูต่างๆ ลงไป 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()

//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) { MenuTest mt = new MenuTest();

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