Java MenuBar (JMenuBar) - Swing Example |
Java MenuBar (JMenuBar) - Swing Example สำหรับ MenuBar หรือ JMenuBar (javax.swing.JMenuBar) จัดอยู่ในกลุ่มของ Swing Menus ซึ่ง JMenuBar เป็น Class ที่ใช้สร้าง Menu แรกสุด โดยทำหน้าที่สร้างปุ่มและแถบเมนู และหลังจากที่ได้ MenuBar แล้ว เราค่อยทำการสร้างรายการเมนูย่อย และแต่ล่ะเมนูย่อยก็จะสร้างสามารถสร้าง Menu Item ได้ตามความต้องการ
Java MenuBar (JMenuBar) - Swing Example
Syntax
// Menu Bar
JMenuBar menuBar=new JMenuBar();
// Menu 1
JMenu menu1 = new JMenu("Menu 1");
menuBar.add(menu1);
// Menu 2
JMenu menu2 = new JMenu("Menu 2");
menuBar.add(menu2);
Controls Icon Tools
Example 1 ตัวอย่างการสร้าง MenuBar ด้วย JMenuBar และการสร้าง Menu Item แบบง่าย ๆ
MyForm.java
package com.java.myapp;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MyForm extends JFrame {
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the frame.
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 362, 249);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Menu Bar
JMenuBar menuBar=new JMenuBar();
// Menu 1
JMenu menu1 = new JMenu("Menu 1");
JMenuItem menu1_1 = new JMenuItem("Sub Menu 1-1");
JMenuItem menu1_2 = new JMenuItem("Sub Menu 1-2");
menu1.add(menu1_1);
menu1.add(menu1_2);
menuBar.add(menu1);
// Menu 2
JMenu menu2 = new JMenu("Menu 2");
JMenuItem menu2_1 = new JMenuItem("Sub Menu 2-1");
JMenuItem menu2_2 = new JMenuItem("Sub Menu 2-2");
menu2.add(menu2_1);
menu2.add(menu2_2);
menuBar.add(menu2);
setJMenuBar(menuBar);
}
}
Output
แสดง Menu ซึ่งประกอบด้วยเมนูหลัก 2 ตัว และแต่ล่ะตัวก็มี Menu Item
แสดงเมนู Item ของเมนูที่สอง
Example 2 การสร้าง Menu และการแทรก Icons Image ลงในแต่ล่ะ MenuItem
ไฟล์ Icons ที่อยู่ใน Project
Syntax การแทรก Icon
ImageIcon icon1 = new ImageIcon(getClass().getResource("open.gif"));
JMenuItem menu1_1 = new JMenuItem("Sub Menu 1-1",icon1);
MyForm.java
package com.java.myapp;
import java.awt.EventQueue;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MyForm extends JFrame {
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the frame.
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 362, 249);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Menu Bar
JMenuBar menuBar=new JMenuBar();
// Menu 1
JMenu menu1 = new JMenu("Menu 1");
ImageIcon icon1 = new ImageIcon(getClass().getResource("open.gif"));
JMenuItem menu1_1 = new JMenuItem("Sub Menu 1-1",icon1);
ImageIcon icon2 = new ImageIcon(getClass().getResource("save.gif"));
JMenuItem menu1_2 = new JMenuItem("Sub Menu 1-2",icon2);
menu1.add(menu1_1);
menu1.add(menu1_2);
menuBar.add(menu1);
// Menu 2
JMenu menu2 = new JMenu("Menu 2");
ImageIcon icon3 = new ImageIcon(getClass().getResource("right.gif"));
JMenuItem menu2_1 = new JMenuItem("Sub Menu 2-1",icon3);
ImageIcon icon4 = new ImageIcon(getClass().getResource("left.gif"));
JMenuItem menu2_2 = new JMenuItem("Sub Menu 2-2",icon4);
menu2.add(menu2_1);
menu2.add(menu2_2);
menuBar.add(menu2);
setJMenuBar(menuBar);
}
}
Output
แสดง Icon ใน Menu
แสดง Icon ใน Menu
Example 3 การสร้าง Event Handler ให้แต่ล่ะ Menu Item เช่น เมื่อคลิกที่เมนู จะให้เกิดเหตุการณ์อะไร
Syntax การสร้าง Event Handler
JMenuItem menu1_1 = new JMenuItem("Sub Menu 1-1");
menu1_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
// Event
}
});
MyForm.java
package com.java.myapp;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class MyForm extends JFrame {
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the frame.
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 362, 249);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Menu Bar
JMenuBar menuBar=new JMenuBar();
// Menu 1
JMenu menu1 = new JMenu("Menu 1");
ImageIcon icon1 = new ImageIcon(getClass().getResource("open.gif"));
JMenuItem menu1_1 = new JMenuItem("Sub Menu 1-1",icon1);
menu1_1.setToolTipText("Open");
menu1_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JOptionPane.showMessageDialog(null,
"Open Command");
}
});
ImageIcon icon2 = new ImageIcon(getClass().getResource("save.gif"));
JMenuItem menu1_2 = new JMenuItem("Sub Menu 1-2",icon2);
menu1.add(menu1_1);
menu1.add(menu1_2);
menuBar.add(menu1);
// Menu 2
JMenu menu2 = new JMenu("Menu 2");
ImageIcon icon3 = new ImageIcon(getClass().getResource("right.gif"));
JMenuItem menu2_1 = new JMenuItem("Sub Menu 2-1",icon3);
ImageIcon icon4 = new ImageIcon(getClass().getResource("left.gif"));
JMenuItem menu2_2 = new JMenuItem("Sub Menu 2-2",icon4);
menu2.add(menu2_1);
menu2.add(menu2_2);
menuBar.add(menu2);
setJMenuBar(menuBar);
}
}
Output
แสดง Menu Item
ตัวอย่างการสร้างเหตุการณ์จากการคลิก
Example 4 การสร้าง KeyEvent แบบ Shortcut Key ลัด เช่น F , E , O
KeyEvent ในลักษณะนี้คือ เมื่อเราคลิกที่เมนู จะเห็นว่าแต่ล่ะ Menu Item จะมี Key ของแต่ล่ะตัว เช่น VK_E (ให้กด Keyboard ที่ปุ่ม E แล้วเมนูนี้จะทำงาน) ซึ่งใน Menu Item ก็จะมีสัญลักษณ์ ตัวอักษรตามด้วย ขีดเส้นใต้ เพื่อบ่งบอกว่า Key ลัดคืออะไร
ImageIcon iconOpen = new ImageIcon(getClass().getResource("open.gif"));
JMenuItem menuOpen = new JMenuItem("Open",iconOpen);
menuOpen.setMnemonic(KeyEvent.VK_O);
menuOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
}
});
ในตัวอย่างนี้จะใช้ Menu Item จะใช้ Key ลัดตัว O
MyForm.java
package com.java.myapp;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MyForm extends JFrame {
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the frame.
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 362, 249);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Menu Bar
JMenuBar menuBar=new JMenuBar();
JMenu menu = new JMenu("File");
menu.setMnemonic(KeyEvent.VK_F);
// Open
ImageIcon iconOpen = new ImageIcon(getClass().getResource("open.gif"));
JMenuItem menuOpen = new JMenuItem("Open",iconOpen);
menuOpen.setMnemonic(KeyEvent.VK_O);
menuOpen.setToolTipText("Open Application");
menuOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
}
});
// Exit
ImageIcon iconExit = new ImageIcon(getClass().getResource("exit.gif"));
JMenuItem menuExit = new JMenuItem("Exit",iconExit);
menuExit.setMnemonic(KeyEvent.VK_E);
menuExit.setToolTipText("Exit Application");
menuExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
// Create menu
menu.add(menuOpen);
menu.addSeparator();
menu.add(menuExit);
menuBar.add(menu);
setJMenuBar(menuBar);
}
}
Output
แสดง KeyEvent แบบ Key ลัด
Example 5 การสร้าง Menu Item ผ่าน KeyEvent และการสร้าง Shortcut ผ่าน Event บน Keyboard เช่น Ctrl + E
MyForm.java
package com.java.myapp;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
public class MyForm extends JFrame {
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyForm frame = new MyForm();
frame.setVisible(true);
}
});
}
/**
* Create the frame.
*/
public MyForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 362, 249);
setTitle("ThaiCreate.Com Java GUI Tutorial");
getContentPane().setLayout(null);
// Menu Bar
JMenuBar menuBar=new JMenuBar();
JMenu menu = new JMenu("File");
menu.setMnemonic(KeyEvent.VK_F);
// Open
ImageIcon iconOpen = new ImageIcon(getClass().getResource("open.gif"));
JMenuItem menuOpen = new JMenuItem("Open",iconOpen);
menuOpen.setMnemonic(KeyEvent.VK_O);
menuOpen.setToolTipText("Open Application");
menuOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
}
});
// Exit
ImageIcon iconExit = new ImageIcon(getClass().getResource("exit.gif"));
JMenuItem menuExit = new JMenuItem("Exit",iconExit);
menuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
ActionEvent.CTRL_MASK));
menuExit.setToolTipText("Exit Application");
menuExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
// Create menu
menu.add(menuOpen);
menu.addSeparator();
menu.add(menuExit);
menuBar.add(menu);
setJMenuBar(menuBar);
}
}
Output
ตัวตัวอย่างนี้สามารถคลิกที่ Keyboard ว่า Ctrl + E คือการทำงาน Menu Item ของ Exit
Property & Method (Others Related) |
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2013-09-05 08:51:03 /
2017-03-27 21:15:43 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|
|