Adding right click menu to to treeitem in SWT tree

后端 未结 1 893
醉酒成梦
醉酒成梦 2021-01-17 15:36

How can I add a right click popup menu to a treeitem in a SWT Tree. Each treeitem should have a right click enabled on it

相关标签:
1条回答
  • 2021-01-17 16:20

    Just use tree.setMenu(Menu).

    There you go:

    public static void main(String[] args)
    {
        Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setText("StackOverflow");
        shell.setLayout(new FillLayout());
    
        final Tree tree = new Tree(shell, SWT.NONE);
    
        for(int i = 0; i < 10; i++)
        {
            TreeItem item = new TreeItem(tree, SWT.NONE);
            item.setText("Parent " + i);
    
            for(int j = 0; j < 3; j++)
            {
                TreeItem child = new TreeItem(item, SWT.NONE);
                child.setText("Child " + i + " " + j);
            }
        }
    
        final Menu menu = new Menu(tree);
        tree.setMenu(menu);
        menu.addMenuListener(new MenuAdapter()
        {
            public void menuShown(MenuEvent e)
            {
                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 " + tree.getSelection()[0].getText());
            }
        });
    
        shell.pack();
        shell.open();
        while (!shell.isDisposed())
        {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }
    
    0 讨论(0)
提交回复
热议问题