Come posso aggiungere un menu popup con il tasto destro del mouse a un albero in un albero SWT. Su ciascun albero deve essere abilitato un clic destro su di essoAggiunta del menu di scelta rapida per il treeitem in albero SWT
risposta
Basta usare tree.setMenu(Menu)
.
ci si va:
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();
}
Si sta lavorando! Grazie mille! – user2598071
@ user2598071 Prego. – Baz
C'è un modo per bloccare la visualizzazione del menu solo per il primo livello dell'albero? Ad esempio, per essere mostrato solo per la radice. – Justplayit94
@ dic19 devo usare solo SWT.Adding un ascoltatore ad un treeitem con evento come SWT.MenuDetect non funziona – user2598071