Java AWT and Popup Menu (PopupMenu) - Example สำหรับ Popup Menu (java.awt.PopupMenu) จัดอยู่ในกลุ่มของ AWT Menu ใช้สำหรับสร้าง Menu Item แบบ Popup คล้าย ๆ กับการคลิกขวาที่ Folder แล้วมี Menu ต่าง ๆ ที่อยู่บน Windows OS หรือ OS อื่น ๆ โดยการสร้าง PopupMenu ก็เหมือนกับการสร้าง Menu Item แบบปกติ เพียงแต่เปลี่ยนจาก Menu มาเป็น PopupMenu ส่วนรายละเอียดการสร้าง Event Handler ก็เหมือนกันทุกประการ
Java AWT and Popup Menu (PopupMenu) - Example
Syntax
CreatePopupMenu popMenu = new CreatePopupMenu(this);
Controls Icon Tools
Example ตัวอย่างการสร้าง PopupMenu บน AWT ด้วยการคลิกที่ปุ่ม Button หรือจะคลิกขวาที่ Frame
MyForm.java
package com.java.myapp;
import java.awt.Button;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import javax.swing.JOptionPane;
public class MyForm extends Frame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
MyForm form = new MyForm();
form.setVisible(true);
}
});
}
public MyForm() {
// Create Form Frame
super("ThaiCreate.Com Java GUI Tutorial");
setSize(434, 285);
setLocation(500, 280);
setLayout(null);
// Button
final Button btn = new Button("Pop-up Menu");
btn.setBounds(140, 120, 150, 20);
final CreatePopupMenu popMenu = new CreatePopupMenu(this);
add(popMenu);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
popMenu.show(btn, 20, 20);
}
});
add(btn);
// Mouse Event
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger())
popMenu.show(e.getComponent(), e.getX(), e.getY());
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger())
popMenu.show(e.getComponent(), e.getX(), e.getY());
}
});
// Close
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
}
class CreatePopupMenu extends PopupMenu implements ActionListener {
MyForm ref;
public CreatePopupMenu(MyForm ref) {
super("File");
this.ref = ref;
MenuItem mnItem;
add(mnItem = new MenuItem("Menu Item 1"));
mnItem.addActionListener(this);
add(mnItem = new MenuItem("Menu Item 2"));
mnItem.addActionListener(this);
add(mnItem = new MenuItem("Menu Item 3"));
mnItem.addActionListener(this);
add(mnItem = new MenuItem("Menu Item 4"));
mnItem.addActionListener(this);
add(mnItem = new MenuItem("Menu Item 5"));
mnItem.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String item = e.getActionCommand();
JOptionPane.showMessageDialog(null,
"Your Selected : " + item.toString());
}
}
}
Output
แสดงปุ่ม Button
คลิกที่ Button หรือคลิกขวาที่ Frame จะแสดง Popup Menu