Hotline: 0919 365 363; Email: daotao@r2s.edu.vn

Menu trong Java Swing

Menu trong Java Swing

Kiến thức hữu ích

Menu trong Java Swing

Trong Java Swing, menu được sử dụng để hiển thị danh sách các tùy chọn cho người dùng. Menu có thể được tạo thành từ các mục và mục con, tạo thành một menu đa cấp có thể được mở rộng và thu gọn. Java Swing cung cấp các lớp JMenu, JMenuBar và JMenuItem để tạo và quản lý các menu.

Menu trong Java Swing là gì?

Menu trong Java Swing là một thành phần được sử dụng để hiển thị một danh sách các tùy chọn hoặc lệnh mà người dùng có thể chọn để thực hiện các hành động cụ thể. Menu được tổ chức thành các mục và các mục con, tạo thành một menu đa cấp có thể được mở rộng và thu gọn tùy theo nhu cầu. [1] 

Menu trong Java Swing được đại diện bởi lớp JMenu. Mỗi mục trong menu được đại diện bởi lớp JMenuItem. Mục con có thể được thêm vào một menu bằng cách sử dụng phương thức add() hoặc addSeparator() của lớp JMenu. Khi người dùng chọn một mục trong menu, sự kiện actionPerformed được kích hoạt để xử lý hành động tương ứng.

Khi chúng ta click vào chuột phải (right-click) trên màn hình, một Menu chứa các Menu Item sẽ xuất hiện bên cạnh nơi chúng ta nhấp chuột và nó được gọi là Popup Menu. Hình ảnh bên dưới là một ví dụ về Menu trong java swing.

menu trong java swing

Hãy cùng tìm hiểu những thông tin, cú pháp để hiểu hơn về menu trong java swing này trong bài viết dưới đây cùng R2S nhé!

JMenuBar của menu trong java swing

JMenuBar là một thành phần trong Java Swing được sử dụng để tạo và hiển thị thanh menu trong giao diện người dùng. Nó chứa các JMenu và JMenuItem để tạo các menu và các mục menu tương ứng.

JMenuBar cung cấp một giao diện trực quan để người dùng tương tác với ứng dụng và thực hiện các chức năng khác nhau.

Tạo menu bar trong NetBeans

Tạo menu bar trong NetBeans

Lưu ý: Mặc định có 2 Menu được tạo là File và Edit.

JMenu của menu trong java swing

JMenu là một class được sử dụng để tạo một menu trên thanh menu. Khi chúng ta click vào JMenu, nó sẽ hiển thị ra một hoặc nhiều item. Và để thêm JMenu vào JMenuBar, chúng ta sử dụng phương thức add() của lớp JMenuBar.

Tạo menu trong NetBeans

menu trong java swing

Thay đổi text cho Menu

menu trong java swing

JMenuItem của menu trong java swing

JMenuItem là một class được sử dụng để tạo một item và gắn vào JMenu. Khi người dùng click vào một menu item, nó sẽ phát sinh ra một sự kiện là performed. Điều này giống như JButton mà chúng ta đã được tìm hiểu ở bài học giới thiệu về Swing.

Tạo menu item trong NetBeans

menu trong java swing

Tuỳ chỉnh menu item

menu trong java swing

Lưu ý chúng ta có thể tạo sub menu bằng cách trong menu gắn thêm một menu khác. Hình ảnh bên dưới là một ví dụ

menu trong java swing

Đăng ký sự kiện cho Menu item (Cách đăng ký được thực hiện giống như Button)

menu trong java swing

JPopupMenu của menu trong java swing

JPopupMenu là một thành phần trong Java Swing được sử dụng để hiển thị một menu nổi lên khi người dùng right click vào một container như JFrame, JPanel, … Trong JPopupMenu cũng chứa các menu item cho phép người dùng lựa chọn.

JPopupMenu chứa một số lượng JMenuItem hoặc các thành phần khác để tạo thành một menu đa cấp có thể được hiển thị và thao tác bởi người dùng.

Tạo popup menu trong NetBeans

Tạo popup menu trong NetBeans

Trong cửa sổ Navigator xuất hiện JPopupMenu

menu trong java swing

Thiết kế popup menu

Thiết kế popup menu

Đăng ký và xử lý sự kiện cho popup menu

Đăng ký và xử lý sự kiện cho popup menu

Viết xử lý cho phương thức formMouseReleased mà NetBeans đã phát sinh code

<private void formMouseReleased(java.awt.event.MouseEvent evt) {

 if(evt.isPopupTrigger()) {

    jPopupMenu2.show(this, evt.getX(), evt.getY());

 }

}>

Lưu ý jPopupMenu2 là tên của JPopupMenu mà chúng ta đã tạo ra trong quá trình thiết kế

Khi chạy ứng dụng và right click vào một vị trí bất kỳ trong JFrame, chúng ta sẽ thấy kết quả như hình ảnh sau

menu trong java swing

Đăng ký sự kiện cho Menu item:thực hiện giống như Button

JToolBar của menu trong java swing

 JToolBar là một thành phần trong Java Swing được sử dụng để hiển thị các công cụ và các nút điều khiển trên một thanh công cụ ngang. Nó cho phép người dùng truy cập nhanh đến các chức năng phổ biến và thao tác trên các thành phần khác trong giao diện người dùng.

JToolBar thường được đặt ở vị trí trên cùng hoặc dưới cùng của cửa sổ ứng dụng và có thể chứa các JButton, JTextField và các thành phần khác. Người dùng có thể tùy chỉnh và di chuyển JToolBar trong ứng dụng để thích nghi với nhu cầu sử dụng của mình.

Hình bên dưới là cách tạo tool bar trong NetBeans

menu trong java swing

Thiết lập icon cho button trong tool bar

menu trong java swing

Các bạn có thể tải bộ icon cho button

JFileChooser của menu trong java swing

JFileChooser là một hộp thoại chuẩn được sử dụng để cho phép người dùng lựa chọn một thư mục hoặc một tệp tin. Có 3 loại hộp thoại tương ứng với 3 phương thức của lớp JFileChooser được liệt kê trong bảng sau đây

Phương thứcHộp thoại
public int showSaveDialog(Component parent)Lưu file
public int showOpenDialog(Component parent)Mở file
public int showDialog(Component parent, String approveButtonLabel)Được phép tùy chỉnh cho nút OK

Xử lý mẫu cho hộp thoại lưu file (showSaveDialog)

(Lưu ý thay phần in đậm màu đỏ thành phần nội dung mà bạn muốn lưu xuống file)

private void saveAction() {

 JFileChooser jfc = new JFileChooser();

 int ret = jfc.showSaveDialog(this);

 File f = null;

 if (ret == JFileChooser.APPROVE_OPTION) {
   f = jfc.getSelectedFile();
 } else {
   return;
 }

 try {
   FileWriter fw = new FileWriter(f);

   fw.write("Nội dung mà chúng ta muốn lưu");

   fw.flush();
   fw.close();

   JOptionPane.showMessageDialog(this, "Saved data successfully");
 } catch (Exception ex) {
   JOptionPane.showMessageDialog(this, ex.toString());
 }
}

Xử lý mẫu cho hộp thoại mở file (showOpenDialog)

(Lưu ý dữ liệu sau khi đọc từ file đang được chứa trong biến data và phần in đậm màu đỏ)

private void openAction() {

 JFileChooser jfc = new JFileChooser();

 int ret = jfc.showOpenDialog(this);

 File f = null;

 if (ret == JFileChooser.APPROVE_OPTION) {
   f = jfc.getSelectedFile();
 } else {
   return;
 }

 try {

   FileReader fr = new FileReader(f);
   BufferedReader br = new BufferedReader(fr);

   String data = br.readLine();

   fr.close();
   br.close();
 } catch (Exception ex) {
   JOptionPane.showMessageDialog(this, ex.toString());
 }
}

Một số bài tập thực hành của menu trong java swing

Câu 1: Thiết kế giao diện của ứng dụng

menu trong java swing

File menu

menu trong java swing

Setting menu

menu trong java swing

Help menu

menu trong java swing

Câu 2: Viết xử lý

2.1. Khi người dùng chọn Open menu, thì sẽ hiển thị hộp thoại cho phép người dùng chọn một tập tin txt và đọc nội dung tập tin đó hiển thị ra trên màn hình

người dùng chọn Open menu
đọc nội dung tập tin đó

2.2. Khi người dùng chọn Exit menu, thì ứng dụng sẽ bị đóng (Ứng dụng sẽ hiển thị hộp thoại xác nhận hay không còn tùy thuộc vào Confirm exit menu có được chọn hay không?)

2.3. Popup menu sẽ cho phép người dùng thiết lập màu chữ và đóng ứng dụng

Popup menu

2.4. Khi người dùng chọn nút “Save“, ứng dụng sẽ hiển thị ra hộp thoại cho phép người dùng lựa chọn nơi lưu tập tin.

Ứng dụng hiển thị ra hộp thoại

2.5 Xử lý tool bar

Xử lý tool bar

Hộp thoại sẽ xác nhận khi đóng ứng dụng. Ứng dụng sẽ bị đóng khi người dùng chọn Yes.

Ứng dụng sẽ bị đóng

2.6. Xử lý cho Setting menu

Confirm exit, RedBlue xử lý giống như Confirm exit của tool barRed/Blue của popup menu

Kết luận

Như vậy, qua bài viết về Menu trong Java Swing trên đây, R2S chúng tôi đã giúp bạn hiểu được về JMenuBar, JMenuBar, JMenuItem, JPopupMenu, JToolBar, JFileChooser

Đừng quên bỏ lỡ bất cứ bài viết nào của chúng tôi để học thêm nhiều kiến thức hữu ích về lập trình giao diện trong lập trình java nhé.

Hãy đến website của R2S để tìm hiểu sâu hơn vào lập trình và công nghệ thông tin để có nhiều kiến thức hay về nó hơn nha.

Bài viết gốc được đăng tải tại giasutinhoc.vn


Alert: You are not allowed to copy content or view source !!