การสร้างเมนูในจาวา

Download Report

Transcript การสร้างเมนูในจาวา

1
มีคลาสที่เกี่ยวข้ องกับการสร้ างเมนูดงั นี ้
 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 ใช้ สร้ างเส้ นคัน
่ รายการเมนู
2




ใช้ สร้ างแถบเมนูด้านบน มี constructor ดังนี ้
public JMenuBar()
ตัวอย่าง myMenuBar = new JMenuBar();
การใช้ งาน สามารถใส่ออบเจ็กต์ของคลาส JMenuBar ลงใน Frame ได้ โดยใช้ เมธอด
setJMenuBar()
ตัวอย่าง this.setJMenuBar(myMenuBar);
3





ใช้ สร้ างรายการกลุม่ เมนู
constructor ที่สาคัญคือ
public JMenu(String label);
ตัวอย่าง menuFood = new JMenu("Food");
การใช้ งาน ต้ องใส่ออบเจ็กต์ของคลาส JMenu ลงใน JMenuBar โดยใช้ เมธอด
add()
ตัวอย่าง myMenuBar.add(menuFood);
4

ใช้ สร้ างเมนูยอ่ ยสุดที่เป็ นเมนูลกู
constructor ที่สาคัญ
public JMenuItem(String label);
ตัวอย่าง miChickenSteak = new JMenuItem("Chicken steak");

การใช้ งาน ให้ ใส่ menuItem ลงไปใน menu อีกทีหนึง่ ด้ วยเมธอด add()


5

สามารถใส่รูปภาพ icon ให้ กบั เมนูได้ โดยใช้ คาสัง่ setIcon
ตัวอย่าง menuFood.setIcon(new ImageIcon("./icon/food.jpg"));
6

คือการกาหนดคีย์ที่เป็ น shortcut ให้ กบั เมนู โดยใช้ คาสัง่ setMnemonic()
ตัวอย่าง miChickenNoodle.setMnemonic(KeyEvent.VK_C);
หมายถึง เมื อ่ กด key ตัว C ในคีย์บอร์ ดจะเป็ นการเลื อกเมนูนี้
7


ใช้ สร้ างรายการเมนูแบบ checkbox
Constructor ที่สาคัญ
public JCheckBoxMenuItem(String label)
public JCheckBoxMenuItem(String label, boolean state)
8
1.
2.
3.
สร้ างออบเจ็กต์ของคลาส JMenuBar แล้ วใส่ลงไปใน Jframe ใช้ คาสัง่
setJMenuBar()
สร้ างออบเจ็กต์ของคลาส JMenu แล้ วใส่ลงไปใน JMenuBar ใช้ คาสัง่ add()
สร้ างออบเจ็กต์ของคลาส JMenuItem แล้ วใส่ลงไปใน Jmenu ใช้ คาสัง่ add()
9
10
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
11
//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
12
// 3.3
เขียนดักจับ
event
ให้กับ menuItem
miChickenNoodle.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
ออกมา
textarea
// method getText
เพือ
่ ดึงขอความเดิ
มทีอ
่ ยูใน
้
่
// 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");
}
});
13
//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()
14
//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();
}
15

เขียนโปรแกรม Notepad โดยมีเมนูดงั นี ้
หมายเหตุ เปลีย
่ นสี ตวั อักษรใช้คาสั่ ง ta.setForeground(Color.red);
เปลีย
่ น font ใช้คาสั่ ง Font newfont = new Font(“Serif”,Font.Plain, 20);
ta.setFont(newfont);
16