[JavaSwing] Bài 2- Tạo PopupMenu trong java

Chào các bạn, nối tiếp bài 1 giới thiệu về menu và cách bắt sự kiện với menuBar thì hôm nay mình sẽ giới thiệu với các bạn PopupMenu. Thông thường khi các bạn mở trương trình soạn thảo văn bản (word) và ấn chuột phải vào đó thì thấy hiện ra một menu gồm rất nhiều cácmục khác nhau đó chính là popupMenu.

Không hiểu sao khi mình nhất chuột để hiện menu thì không chụp được ảnh màn hình nữa nên down tạm một cái hình từ internet về. Nôm na là ta sẽ đi làm một cái giống thế này 🙂

download

Làm việc với popupMenu cũng giống như với menuBar. Với menuBar thì các bạn add các menu cha hay menuItem vào menu Bar rồi thêm menuBar vào Frame. còn với PopupMenu thì các bạn cũng làm tương tự. Sẽ add các menu cha hay menuItem vào popupMenu rồi bắt sự kiện click chuột, khi nào click chuột thì cho hiện popupMenu bằng cách gọi phương thức popupMenu.show();

Bắt sự kiện khi ấn vào các menuItem thì hoàn toàn giống bắt sự kiện với bài menuBar hay nói cách khác là giống bắt sự kiện cho button.


package opin.swing.menu;

import java.awt.Menu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;

public class PopupMenu extends JFrame implements MouseListener, ActionListener{

	private JPopupMenu popupMenu = new JPopupMenu();
	private JMenu menuNew = new JMenu("New");
	private JMenuItem itemOpen = new JMenuItem("Open");
	private JMenuItem itemNewProject = new JMenuItem("Project");
	private JMenuItem itemNewClass = new JMenuItem("Class");
	private JMenuItem itemNewXML = new JMenuItem("XML");
	
	public PopupMenu(){
		// Đưa các menu con vào menu cha menuNew
		menuNew.add(itemNewProject);
		menuNew.add(itemNewClass);
		menuNew.add(itemNewXML);
		
		// Đưa các menu cha vào menu Popup
		popupMenu.add(menuNew);
		popupMenu.add(itemOpen);
		
		this.setSize(400, 300);
		this.setVisible(true);
		
		this.addMouseListener(this); // nạp sự kiện click chuột
		
		itemOpen.addActionListener(this);
		itemNewClass.addActionListener(this);
		itemNewProject.addActionListener(this);
		itemNewXML.addActionListener(this);
	}
	
	public static void main(String[] args) {
		new PopupMenu();
	}

	@Override
	public void actionPerformed(ActionEvent e){
		if(e.getSource() == itemOpen){
			JOptionPane.showMessageDialog(null, "Bạn vừa chọn open", "Thông báo", JOptionPane.CLOSED_OPTION);
		}
		
		if(e.getSource() == itemNewClass){
			JOptionPane.showMessageDialog(null, "Bạn vừa chọn Class", "Thông báo", JOptionPane.CLOSED_OPTION);	
		}
	
		if(e.getSource() == itemNewProject){
			JOptionPane.showMessageDialog(null, "Bạn vừa chọn Project", "Thông báo", JOptionPane.CLOSED_OPTION);	
		}
		
		if(e.getSource() == itemNewXML){
			JOptionPane.showMessageDialog(null, "Bạn vừa chọn Xml", "Thông báo", JOptionPane.CLOSED_OPTION);	
		}
	}
	// khi click chuột trái
	@Override
	public void mouseClicked(MouseEvent e) {
		popupMenu.show(this, e.getX(), e.getY());
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

}

Share this:

Thích bài này:

Thích

Đang tải…