java - 在 SWT 中为列表项创建右键单击选项

标签 java list swt contextmenu

我在 TabFolder 中创建了一个 List,对于该元素列表,我希望为列表中的每个元素提供右键单击选项。那么如何在 SWT 中完成此操作。

我已将元素添加到列表中,如下所示:

list.add("a");
list.add("b");
list.add("b");
list.add("v");
list.add("d");
list.add("l");

现在如何为每个元素创建此列表的右键单击选项?

最佳答案

这应该是一个很好的起点:

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

    final List list = new List(shell, SWT.BORDER);
    list.add("a");
    list.add("b");
    list.add("b");
    list.add("v");
    list.add("d");
    list.add("l");

    final Menu menu = new Menu(list);
    list.setMenu(menu);
    menu.addMenuListener(new MenuAdapter()
    {
        public void menuShown(MenuEvent e)
        {
            int selected = list.getSelectionIndex();

            if(selected < 0 || selected >= list.getItemCount())
                return;

            MenuItem[] items = menu.getItems();
            for (int i = 0; i < items.length; i++)
            {
                items[i].dispose();
            }
            MenuItem newItem = new MenuItem(menu, SWT.NONE);
            newItem.setText("Menu for \"" + list.getItem(list.getSelectionIndex()) + "\"");
        }
    });

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

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

看起来像这样:

enter image description here

关于java - 在 SWT 中为列表项创建右键单击选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245071/

相关文章:

java - 使用 JavaFX 的骰子模拟器,图像未出现

Java改变标签图像

列表中的 VB.NET If-Else

java - 在 Java 方法中使用标志的最佳实践

java - JdbcTemplate.execute() 方法可以抛出的所有异常

python - 使用非零初始值创建大小为 N 的 bytes() 的大多数 pythonic 方法?

python插入函数列表理解

java - SWT-App 从可运行的 .jar 或外部文件夹加载 .swf 文件

java - SWT Composite 构造函数在非空参数上抛出 IllegalArgumentException

java - 在JAVA中解析stringify字符串