Tạo Menu ngữ cảnh trong Java Swing
Đề bài: Viết chương trình tạo giao diện gồm một Textarea, khi người dùng nhấn chuột phải vào Textarea thì chương trình sẽ hiển thị một popup Menu gồm các thành phần Cut, Copy, Paste, Help.
Yêu cầu kiến thức:
- Kế thừa và triển khai các phương thức đã được đề ra ở các lớp cha
- Phân tích và thiết kế các đối tượng trên giao diện là các components
- Hiểu rõ bản chất cách hoạt động các đối tượng
Cấu trúc thư mục:
src
|——buildUI
|——DemoPopUp.java
|——usingUI
|——MainClass.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File DemoPopUp.java:
package buildUI;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class DemoPopUp extends JFrame {
// Cac thanh phan cua PopUp
JPopupMenu popUp;
JMenuItem cutMenu, copyMenu, pasteMenu, helpMenu;
JTextArea textArea;
// Ham khoi tao
public DemoPopUp() {
// Tao texterea hien thi noi dung
textArea = new JTextArea("Nhan chuot phai vao day de hien thi PopUp");
// Thiet lap font chu cho texterea
textArea.setFont(new Font("Monospaced", Font.PLAIN, 14));
getContentPane().add(textArea);
// Tao popup menu
popUp = new JPopupMenu("My PopUp Menu");
// Tao cac thanh phan cho PopUp Menu
cutMenu = new JMenuItem("Cut");
popUp.add(cutMenu);
copyMenu = new JMenuItem("Copy");
popUp.add(copyMenu);
pasteMenu = new JMenuItem("Paste");
popUp.add(pasteMenu);
// Tao duong ngan cach
popUp.addSeparator();
helpMenu = new JMenuItem("Help");
popUp.add(helpMenu);
// Gan su kien click chuot cho textarea
PopupMenuListener pml = new PopupMenuListener();
textArea.addMouseListener(pml);
}
class PopupMenuListener extends MouseAdapter {
// Thuc hien khi an chuot
public void mousePressed(MouseEvent e) {
// Hien thi popup
showPopup(e);
}
private void showPopup(MouseEvent e) {
// Neu click chuot phai
if (e.isPopupTrigger()) {
popUp.show(e.getComponent(), e.getX(), e.getY());
}
}
// Thuc thi khi nha chuot
public void mouseReleased(MouseEvent e) {
showPopup(e);
}
}
}
File MainClass.java:
package usingUI;
import buildUI.DemoPopUp;
public class MainClass {
public static void main(String[] args) {
DemoPopUp demoPopUp = new DemoPopUp();
demoPopUp.setTitle("My Popup Menu");
demoPopUp.setSize(350, 150);
demoPopUp.setVisible(true);
}
}
Kết quả chương trình:
Kết luận:
- Bạn có thể tham khảo thêm khóa học lập trình Java từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Ôn tập OOP cơ bản trong Java. Xem tại đây
cảm ơn