Java SWT – Popup Menu

Bài viết này sẽ hướng dẫn các bạn tạo 1 popup menu.

PopupMenuEx.java

package vncoding;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;


public class PopupMenuEx {

    public PopupMenuEx(Display display) {

        initUI(display);
    }

    private void initUI(Display display) {
        
        Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER);

        Menu menu = new Menu(shell, SWT.POP_UP);
        MenuItem minItem = new MenuItem(menu, SWT.PUSH);
        minItem.setText("Minimize");

        minItem.addListener(SWT.Selection, event -> {
            shell.setMinimized(true);
        });

        MenuItem exitItem = new MenuItem(menu, SWT.PUSH);
        exitItem.setText("Exit");

        exitItem.addListener(SWT.Selection, event -> {
            shell.getDisplay().dispose();
            System.exit(0);
        });

        shell.setText("Popup menu");
        shell.setMenu(menu);
        shell.setSize(300, 250);
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }        
    }

    @SuppressWarnings("unused")
    public static void main(String[] args) {
        
        Display display = new Display();
        PopupMenuEx ex = new PopupMenuEx(display);
        display.dispose();
    }
}

Giải thích:
Trong ví dụ này, mình tạo 2 item cho popup menu: minimize thu nhỏ cửa sổ về thanh taskbar của Windows + Exit kết thúc chương trình.

Menu menu = new Menu(shell, SWT.POP_UP);

Tạo popup menu với hằng số SWT.POP_UP

 

MenuItem minItem = new MenuItem(menu, SWT.PUSH);
minItem.setText("Minimize");

Tạo menu item với với hằng số SWT.PUSH

 

minItem.addListener(SWT.Selection, event -> {
    shell.setMinimized(true);
});

Minimize cửa sổ bằng phương thức setMinimized()

shell.setMenu(menu);

Gắn menu lên cửa sổ shell.

Kết quả:

Java SWT - Popup Menu
Java SWT – Popup Menu

Be the first to comment

Leave a Reply