上一节,我们通过配置的方式实现了菜单和工具栏,下面将通过编程的方式实现菜单和工具栏:
第一件事,我们需要创建一个action,这个action继承Action,这里作为示例,该action的作用就是创建一个对话框,代码如下:
public class HelloAction extends Action {
private IWorkbenchWindow window ;
public HelloAction(IWorkbenchWindow window) {
this.window = window ;
this.setText("About!");
}
@Override
public void run() {
MessageBox mb = new MessageBox(window.getShell() ,SWT.OK);
mb.setMessage("Author:lql\nDate:2010-7-25!");
mb.setText("Demo");
mb.open();
}
}
第二件事,就是修改ApplicationActionBarAdvisor这个java文件:
最终代码看起来是这样:
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
private HelloAction helloAction ;
public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
super(configurer);
}
protected void makeActions(IWorkbenchWindow window) {
super.makeActions(window);
helloAction = new HelloAction(window);
helloAction.setId("demo.HelloAction");
register(helloAction);
}
protected void fillMenuBar(IMenuManager menuBar) {
super.fillMenuBar(menuBar);
MenuManager demoMenu = new MenuManager("编程实现菜单");
demoMenu.add(helloAction);
menuBar.add(demoMenu);
}
/* (non-Javadoc)
* @see org.eclipse.ui.application.ActionBarAdvisor#fillCoolBar(org.eclipse.jface.action.ICoolBarManager)
*/
@Override
protected void fillCoolBar(ICoolBarManager coolBar) {
IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
coolBar.add(new ToolBarContributionItem(toolbar, "main"));
toolbar.add(helloAction);
}
}
我们来看看这个类,它定义了一个属性HelloAction helloAction,这个就是点击菜单或者工具栏按钮之后执行的动作。
它还包含一个makeActions方法,这个方法就是初始化这些action,并注册。
和菜单栏相关的方法就是fillMenuBar,通过方法名就能够看出来,该方法里面创建了一个MenuManager,这个其实就对应着菜单栏中的
一个菜单,然后demoMenu.add(helloAction) ;该方法就是向刚创建的菜单中添加一个菜单项,然后将这个菜单加到菜单栏中。
和工具栏相关的方法是fillCoolBar,对比上面的菜单创建方法,很容易理解工具栏的创建。
coolBar.add(new ToolBarContributionItem(toolbar, "main"));这行代码的作用就是将工具栏加到窗口中。然后就是向工具栏
中添加了一个工具栏按钮。
下面看下结果:
到此实现菜单的两种方式就结束了。当然还有些细节,以后再摸索。
- 大小: 45.2 KB
分享到:
相关推荐
本文给大家分享了VC简单编程实现多语言菜单。
单片机多级菜单编程实现.pdf
OpenGL编程实现时钟运动,可以显示当前时间,表针可以和背景互换颜色。
详细代码,用win32实现菜单和弹出,并编辑文档。
1)编程实现如下应用程序,含有菜单,单击“新建”时弹出新建对话框(非模态对话框),单击对话框颜色按钮后应用程序窗口字体和背景色发生相应的变化。单击“关于”菜单项时弹出关于对话框(模态对话框)。 (Winodws...
单片机多级菜单编程实现.doc
排序技术的编程实现(2学时,综合型),掌握排序技术的编程实现,可以实现一种,也可以实现多种。也鼓励学生利用基本操作进行一些应用的程序设计。 【实验性质】 综合性实验,其综合性体现在本实验的内容具有的实际...
本例是实现了链表菜单的实现,并给出了在Renesas单片机编译环境下实现的具体实例
VB编程源代码 21在菜单中显示最近打开的文件记录VB编程源代码 21在菜单中显示最近打开的文件记录VB编程源代码 21在菜单中显示最近打开的文件记录VB编程源代码 21在菜单中显示最近打开的文件记录VB编程源代码 21在...
linux实验报告-shell编程-平方与菜单实现整理.pdf
VB模仿TreeView控件的功能,一个可以实现多级树状展开、折叠的菜单,程序虽小,但经常使用,VB6下顺利编译,它可以无限级展开下去,只需你在程序里设置一下,每一项菜单中包含有复选框,可以同时选中菜单的某项...
单片机多级菜单编程实现(ZT) 建立一个树状的菜单结构,用链表实现
支持定制菜单展开半径、递增角度、起始角度和大小等 说明文章:https://www.cnblogs.com/swarmbees/p/16837670.html
商业编程-源码-自绘菜单的实现.zip
12864 实现多级菜单操作 适合单片机编程使用
Java 下拉式菜单实现有讲解有实例。轻松掌握Java下拉式菜单编程
计算机软件-编程源码-office xp风格菜单基本版--通过表单实现.zip