Action类,ActionGroup类,MenuManager类介绍

SWT中菜单是Menu类,菜单项用MeauItem类来实现.但是在实际开发中,同一种功能会有多中表现形式,

例如:Eclipse中的"新建"功能,他会分别出现在主菜单,主工具栏,右键菜单里,

如果都是用MeanuItem来实现,就需要写三份代码,以后也要维护三份代码.当然也可以将时间处理

写成外部类来共享代码,但名称,图像以及一些其他的信息写成外部类来共享则不太方便.

JFace包中已经对以上问题提供了解决方案,JFace提供了一个Action类,

它将名称,图像,动作处理程序等集成在其中,这样就可以共享这些Action来形成菜单项,工具栏按钮等.

当然在底层最后用于Menu的还是MenuItem对象,将Action转化成MenuItem是由MenuManager(菜单管理器)来完成的.

MenuManager简化了菜单的创建,一旦生成了MenuManager对象,就可以通用于菜单栏,弹出菜单,工具栏下拉菜单.

另外.Action写成一个个的类会很凌乱.JFace又提供了一个ActionGroup类用于统一管理Action.

然后让外界程序通过ActionGroup来访问Action.当然,ActionGroup并非是使用Action所一定要的类.,只是用它会更好.

本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/4167776.html,如需转载请自行联系原作者

关于JFace中的右键菜单Action类,ActgionGroup类,MenuManager类相关推荐

  1. 在(CListView)列表视图中添加右键菜单的方法

    使用弹出式菜单(PopMenu) 弹 出式菜单(PopMenu)大家都熟悉,在WIN98的桌面上单击鼠标右键弹出的菜单就是弹出式菜单.通常情况下,弹出式菜单在鼠标右键单击时弹出,当 然,也可以根据需要 ...

  2. WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法

    WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 问题描 ...

  3. WPF中的右键菜单ContextMenu

    WPF中的右键菜单主要是通过ContextMenu来实现,ContextMenu的使用有两种方式 一..在Resources中声明,在控件中使用. 1.在Resources中添加ContextMenu ...

  4. 实例-Vue中使用右键菜单之@xunleivue-context-menu组件的使用

    实例-Vue中使用右键菜单之@xunlei/vue-context-menu组件的使用 npm地址--https://www.npmjs.com/package/@xunlei/vue-context ...

  5. vue中,右键菜单组件v-contextmenu的使用

    vue中,右键菜单组件v-contextmenu的使用 1.效果 右键菜单之禁用和子菜单 2.流程 第一步:安包 npm install v-contextmenu --save-dev npm in ...

  6. vfp中treeview右键菜单_用卓语言程序把Sublime Text 3添加到和删除出右键菜单

    用卓语言程序把Sublime Text 3添加到和删除出右键菜单 Sublime Text 是一款跨平台代码编辑器(Code Editor)软件.Sublime Text 3既可以编写代码还可以编辑文 ...

  7. easyui datagrid中添加右键菜单事件

    //HTML中代码  <div id="menu" class="easyui-menu" style="width:150px;"& ...

  8. UnityWebPlayer使用(3) WinForm中屏蔽右键菜单

    百度到的解决方案:     鼠标右键的BUG      1).3D模型基本操作都是鼠标右键按下以后,拖动鼠标可以旋转模型视角,但是WPF加载后的UnityWebPlayer控件存在一个BUG:右键菜单 ...

  9. linux右键没有创建新文件夹,将新建文档添加回Ubuntu 18.04中的右键菜单

    当我最近转移到Ubuntu 18.04时,我注意到Nautilus的右键菜单中没有选项来创建一个空文本文件. 当然,我可以使用命令行快速创建新文档,甚至可以使用文本编辑器创建新文件,但这不是我想要的. ...

最新文章

  1. tnsping通oracle连不上,写正确了tnsnames文件却tnsping无法ping通
  2. OpenCV 3最新模块介绍
  3. 2015 计算机考研大纲,2015年考研计算机大纲详解:操作系统
  4. 破译手势在对话中的意义
  5. php中 param,php中bind_param()函数用法分析
  6. 智能运维监管系统终端_城市轨道交通关键设备智能运维系统初步建构
  7. 读入一个数列和N值,返回按优先级排序的N个数 满足...Python解法
  8. 《leetcode》first-missing-positive
  9. Spring Boot基础学习笔记16:项目打包部署
  10. apache php 503,宝塔linux面板 apache网站访问报错503 Service Unavailable解决
  11. linux fish颜色配置,如何在 Linux 中安装、配置和使用 Fish Shell?
  12. python 类 字典_python基础类型—字典
  13. Android心电图动画效果,手把手教你打造一个心电图效果View Android自定义View
  14. PRISM概率模型检测器初使用--骰子模型
  15. Zabbix 网页端监控工具
  16. 做sxy官网的一点经验
  17. js操作图片像素进行编辑
  18. 使用短信登录和注册的流程
  19. MEX and Increments
  20. python读取邮件标题_Python连载57- 邮件头和主题、解析邮件

热门文章

  1. WordPress实践:上传文件时提示“缺少临时文件夹”
  2. ASP.NET 2.0 数据绑定高级技巧
  3. 建立最简单的OpenCASCADE程序
  4. GARFIELD@01-25-2005
  5. 性能测试基础之JMeter聚合报告详解
  6. 03-25 内存统计
  7. 线性回归(三)---岭回归
  8. 线性回归(一)---一元线性回归
  9. 程序员抱怨:父母没文化没见识,当初努力学习远离看来是正确的
  10. 0基础入门前端,会遇到哪些困难?