SWT中的Tree中 添加右键弹出菜单

时间:2021-06-10 07:45:39

先看一下效果:

SWT中的Tree中 添加右键弹出菜单

如图:在树上单击鼠标右键会弹出 弹出式菜单。做法其实很简单,先做一个树:

final TreeViewer treeViewer = new TreeViewer(group, SWT.BORDER);
tree = treeViewer.getTree(); tree.setBounds(, , , );
treeViewer.setContentProvider(new TreeContentProvider());
treeViewer.setLabelProvider(new TreeLabelProvider()); initPopup(); //主要是这个函数,将tree生成后,实现这个函数就行了。
public void initPopup(){
Menu menu=new Menu(tree);
MenuItem newItem=new MenuItem(menu,SWT.PUSH);
newItem.setText("新增部门");
MenuItem newMemberItem=new MenuItem(menu, SWT.PUSH); newMemberItem.setText("新增员工");
MenuItem editItem=new MenuItem(menu,SWT.PUSH);
editItem.setText("编辑");
MenuItem deleteItem=new MenuItem(menu, SWT.PUSH); deleteItem.setText("删除");
tree.setMenu(menu);
}

若想给MenuItem添加响应:

public void initPopup(){
Menu menu=new Menu(tree);
MenuItem addNode=new MenuItem(menu,SWT.PUSH);
addNode.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
}
});
addNode.setText("添加节点"); MenuItem deleteNode=new MenuItem(menu, SWT.PUSH);
deleteNode.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
}
});
deleteNode.setText("删除节点"); tree.setMenu(menu);
}