java – 如何为jface treeviewer创建鼠标右键菜单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何为jface treeviewer创建鼠标右键菜单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1979字,纯文字阅读大概需要3分钟。
内容图文
![java – 如何为jface treeviewer创建鼠标右键菜单](/upload/InfoBanner/zyjiaocheng/736/169d3da6b30e41efaa400265e747a287.jpg)
我使用JFace创建了一个TreeViewer,但现在我必须向节点添加一个右键单击侦听器.右键单击完成后,必须显示如下菜单:
>做点什么
>什么都不做
>删除
我试图这样做,但它抛出一个空指针异常.
MenuManager menuMgr = new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager menuManager) {
IContributionManager menu = null;
MenuItem[] items = (MenuItem[]) menu.getItems();
for (int i = 0; i < items.length; i++)
items[i].dispose();
MenuItem itemCollectionFolder = new MenuItem((Menu) menu, SWT.NONE);
itemCollectionFolder.setText("Add Something" );
MenuItem itemNewTestCase = new MenuItem((Menu) menu, SWT.NONE);
itemNewTestCase.setText("Do Nothing" );
}
});
Control tree = treeViewer.getControl();
Menu menu = menuMgr.createContextMenu(tree);
tree.setMenu(menu);
解决方法:
试试这个,别忘了打电话:
createContextMenu(观看者);
/**
* Creates the context menu
*
* @param viewer
*/
protected void createContextMenu(Viewer viewer) {
MenuManager contextMenu = new MenuManager("#ViewerMenu"); //$NON-NLS-1$
contextMenu.setRemoveAllWhenShown(true);
contextMenu.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager mgr) {
fillContextMenu(mgr);
}
});
Menu menu = contextMenu.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
}
/**
* Fill dynamic context menu
*
* @param contextMenu
*/
protected void fillContextMenu(IMenuManager contextMenu) {
contextMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
contextMenu.add(new Action("Do Something") {
@Override
public void run() {
// implement this
}
});
contextMenu.add(new Action("Do Nothing") {
@Override
public void run() {
// don't do anything here
}
});
contextMenu.add(new Action("Delete") {
@Override
public void run() {
// implement this
}
});
}
要获取树视图的选定元素,请执行以下操作:
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
selection.getFirstElement();
selection.toList(); // or if you handle multi selection
内容总结
以上是互联网集市为您收集整理的java – 如何为jface treeviewer创建鼠标右键菜单全部内容,希望文章能够帮你解决java – 如何为jface treeviewer创建鼠标右键菜单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。