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ó thể bạn sẽ thích…

1 phản hồi

Trả lời

EnglishVietnamese