我们如何在 swt 中将菜单添加到标签

我们如何在 swt 中将菜单添加到标签

问题描述:

如何将菜单添加到标签?我想通过单击标签来向用户显示一些选项来显示下拉菜单.在 SWT 中怎么可能?

How can I add Menu to label? I want to show a drop down menu by clicking on label to show some options to user. How is it possible in SWT?

您可以通过调用 Control#setMenu(Menu).下面是一个 Label 的小例子:

You can add a Menu to all Controls by calling Control#setMenu(Menu). Here is a small example for a Label:

public static void main(String[] args)
{
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    shell.setLayout(new FillLayout());

    Label label = new Label(shell, SWT.NONE);
    label.setText("Right-click here");

    Menu menu = new Menu(label);
    MenuItem item = new MenuItem(menu, SWT.PUSH);
    item.setText("Context-menu item");
    item.addListener(SWT.Selection, new Listener()
    {
        @Override
        public void handleEvent(Event event)
        {
            System.out.println("clicked");
        }
    });

    label.setMenu(menu);

    shell.pack();
    shell.open();

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