Action类,ActionGroup类,MenuManager类介绍

SWT中菜单是Menu类,在前面章节中已经介绍过Menu类的使用.

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

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

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

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

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

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

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

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

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

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

关于JFace中的右键菜单Action类,ActgionGroup类,MenuManager类的更多相关文章

  1. BHO多线程中实现右键菜单

    在BHO中实现右键菜单网上相关文章很多,可以通过实现IDocHostUIHandler接口的ShowContextMenu.截获HTMLDocumentEvents2的OnContextMenu消息等 ...

  2. 仅在TabControl中的Tab中添加右键菜单

    若想实现仅在TabControl中的Tab中添加右键菜单,可在XAML中通过使用样式得到: <TabControl> <TabControl.ItemContainerStyle&g ...

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

    原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 问题描述 今天发现如果我想在一个TextBlock弄一个右键菜单,并且使用Command绑定,结果发 ...

  4. 怎样在Windows资源管理器中添加右键菜单以及修改右键菜单顺序

    有时,我们需要在Windows资源管理器的右键菜单中添加一些项,以方便使用某些功能或程序. 比如我的电脑上有一个免安装版的Notepad++,我想在所有文件的右键菜单中添加一项用Notepad++打开 ...

  5. Maven问题总结:Eclipse中项目右键菜单中点击Maven->Update Projects时JDK被重置

    Eclipse中在项目右键菜单点击->Maven->Update Projects时,JDK总是切回 1.5 如果没有在Maven中配置过JDK版本,只是在Eclipse中项目的Prope ...

  6. DevExpress GridView加入DevExpress中的右键菜单PopuMenu

    1. 添加一个Barmanager控件 2. 加入popumenu控件,点击该控件右上角的黑色三角号,编辑选项,点击编辑的选项,选择事件,编辑事件. 3. 在使用该右键菜单的控件添加MouseUp事件 ...

  7. Pyqt在QListWidget中添加右键菜单

    Pyqt 的资料奇少, 攻破难点之后, 就在这里记一下笔记. QListWidget 是继承 QWidget 的, 所以 QListWidget 是有右键菜单的, 从文档上可以找到 QWidget 上 ...

  8. pyqt5的QListWidget中设置右键菜单

    QListWidget 是继承 QWidget 的, 所以 QListWidget 是有右键菜单的, 从文档上可以找到 QWidget 上有以下两个与右键菜单有关的函数: Qt.ContextMenu ...

  9. Window7 定制 Explore中的右键菜单

    win+R 命令  运行 regedit ,打开注册表 在  HKEY_CLASSES_ROOT\*\shell\VisualCode下创建针对文件的新增命令 command 在HKEY_CLASSE ...

随机推荐

  1. 【译】 AWK教程指南 8处理多行数据

    awk 每次从数据文件中只读取一行数据进行处理.awk是依照其内置变量 RS(Record Separator) 的定义将文件中的数据分隔成一行一行的Record.RS 的默认值是 "\n& ...

  2. 用Python操作Excel2007 及以上的版本读写,来自官方的Demo

    大牛请略过,新手可以参考,具体见下面的代码注释, 另外一个问题,想学习这个语言,最好还是英语牛一些,可以去官网多看看有用的类库,汉语的资料不是很全 #运行环境 3.4,下面这个操作Excel的包是针对 ...

  3. [原]AngularJS iframe打开不同域的内容时报错误

    <iframe id="myFrame" ng-src="{{url}}" width="100%" height="100 ...

  4. ACM2123(一个简单的问题)

    一个简单的问题 问题说明 在这个问题中,你需要做N * N的乘法表,就像样品.第第i 行和j 个列中的元素i和j的乘积(乘积).   输入 输入的第一行是一个整数C中表示测试用例的数量,然后C的测试用 ...

  5. 中断——中断描述符表的定义和初始化(一) (基于3.16-rc4)

    1.中断描述符表的定义(arch/x86/kernel/traps.c) gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss; 定义的描述 ...

  6. JM编解码264

    看到有人说JM解码编码264 尝试了一下http://iphome.hhi.de/suehring/tml/download/win7下 vs2010 编译后,得到编码解码可执行文件ldecod.ex ...

  7. 在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持)

    在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持) 发布时间: 2015-02-27 00:16 1.spice的USB重定向 1.1 介绍 使用usb重定向,在clie ...

  8. hdoj 1106 排序

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  9. ST-Link STVP Cannot communicate with the device!

    用STLink在ST Visual Programmer中对STM8下载二进制文件有时会出现: 原因:多半是STM8目标板没有电源有问题,或是电源引脚虚焊:

  10. 高效使用Bitmaps(二) 后台加载Bitmap

    转载:http://my.oschina.net/rengwuxian/blog/183802 为什么要在后台加载Bitmap? 有没有过这种体验:你在Android手机上打开了一个带有含图片的Lis ...