EclipseRCP开发3-建立自定义菜单
来源:互联网 发布:淘宝网怎么盈利 编辑:程序博客网 时间:2024/06/08 06:02
上篇博客介绍了如何利用Eclipse提供的Action完成菜单开发,这篇介绍一下自定义菜单的功能。
建立工程的步骤就不再赘述了,前面的步骤可以看一下以前的博客。
要想创建自定义菜单的功能,需要做几个操作,包括创建自定义Action,实现Action中的run方法,之后makeActions方法中注册自定义Action,在fillMenuBar方法中添加菜单。
先来建立Action,Action要继承Action,和实现IWorkbenchAction,最主要是实现run方法,run方法的作用是实现菜单的功能。
具体代码为:
import org.eclipse.jface.action.Action;import org.eclipse.ui.IWorkbenchWindow;import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;public class AboutAction extends Action implements IWorkbenchAction {private IWorkbenchWindow workbenchWindow;public AboutAction(IWorkbenchWindow window){if(window==null){throw new IllegalArgumentException();}this.workbenchWindow=window;}public void run(){if(workbenchWindow !=null){AboutDialog ad=new AboutDialog(workbenchWindow.getShell());ad.open();}}@Overridepublic void dispose() {}}
在上面的run方法中我用到了一个AboutDialog,这个类是一个窗体类,具体实现为:
import org.eclipse.swt.SWT;import org.eclipse.swt.widgets.Dialog;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Label;import org.eclipse.swt.widgets.Shell;public class AboutDialog extends Dialog{protected Shell shell;private int result;public AboutDialog(Shell parent) {this(parent,SWT.NONE);}public AboutDialog(Shell parent,int style){super(parent,style);}public int open(){createContents();shell.open();shell.layout();Display display=getParent().getDisplay();while(!shell.isDisposed()){if(!display.readAndDispatch())display.sleep();}return result;}protected void createContents(){shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);shell.setSize(400, 150);shell.setText("关于 ");Label label2 =new Label(shell,SWT.NONE);label2.setText("自定义菜单");label2.setBounds(70, 50, 300,20);}}
下面就是和前面博客讲解的那样注册Action和实现FillMenuBar。
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {private IWorkbenchAction aboutAction;public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {super(configurer);}protected void makeActions(IWorkbenchWindow window) {aboutAction = new AboutAction(window);aboutAction.setId("test.about");aboutAction.setText("关于");register(aboutAction);}protected void fillMenuBar(IMenuManager menuBar) {menuBar.add(createHelpMenu());}private MenuManager createHelpMenu() {MenuManager menu = new MenuManager("About");menu.add(aboutAction);return menu;}}
实现这些代码之后我们就可以运行了。之后就会出现一下的窗体:
这样自定义菜单就完成了。
- EclipseRCP开发3-建立自定义菜单
- EclipseRCP开发2-建立菜单
- EclipseRCP开发1-建立第一个RCP
- EclipseRCP开发之增加右键菜单
- EclipseRCP开发之屏蔽视图上的右键菜单
- wordpress建立自定义菜单
- EclipseRCP开发---【第一弹】
- EclipseRCP开发剪辑(1)--EclipseRCP入门
- EclipseRCP开发剪辑(2)--EclipseRCP运行基本原理
- 微信小店开发(3) 自定义菜单加入维权
- 自定义菜单功能开发
- 自定义菜单功能开发
- EclipseRCP开发剪辑(3)--为RCP程序加入登陆窗口
- EclipseRCP开发之动态的加入视图
- EclipseRCP开发之捕获视图关闭事件
- Android 菜单开发自定义效果
- Android 菜单开发自定义效果
- 微信开发 -- 自定义菜单
- 使用批处理脚本(BAT)调用FFMPEG批量编码视频
- 使用新浪微博分享图片文字(实战)
- SVN服务器搭建和使用(四)Svn 设置 修改 日志
- Jquery 实现 “下次自动登录” 记住用户名密码功能
- 2013年9月25日星期三(demo5_2点法式平面)
- EclipseRCP开发3-建立自定义菜单
- javascript面向对象(this)
- Nyoj 790 The More,the Better[基础并查集]
- ImagePreviewd.js 选择图片预览遇到的问题
- ios设计模式读书笔记----Abstract Factory(抽象工厂)
- ios 画图总结
- ant.xml 详解
- 4.2E2
- 登录退出窗口