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

Action类,ActionGroup类,MenuManager类介绍

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

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

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

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

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

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

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

当然在底层最后用于Menu的还是MenuItem对象,将Action转化成MenuItem是由

MenuManager(菜单管理器)来完成的.MenuManager简化了菜单的创建,一旦生成了

MenuManager对象,就可以通用于菜单栏,弹出菜单,工具栏下拉菜单.

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

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

时间: 2024-10-24 21:48:02

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

BHO多线程中实现右键菜单

在BHO中实现右键菜单网上相关文章很多,可以通过实现IDocHostUIHandler接口的ShowContextMenu.截获HTMLDocumentEvents2的OnContextMenu消息等. 但这两种方式都必须在浏览器线程中实现才能正常弹出右键菜单,当你需要在另外的线程中实现右键菜单,这就不行了,TrackPopupMenuEx的时候会直接略过. 我采取的方式是建一个看不见的窗口,TrackPopupMenuEx所需的窗口句柄设置为该窗口. 构建一个轻量级的窗体类: #include

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

若想实现仅在TabControl中的Tab中添加右键菜单,可在XAML中通过使用样式得到: <TabControl> <TabControl.ItemContainerStyle> <Style TargetType="{x:Type TabItem}"> <Setter Property="ContextMenu"> <Setter.Value> <ContextMenu/> <!--

pyqt5的QListWidget中设置右键菜单

两种思路:一. 重写event事件方法.容易出现冲突事件...二. 利用Widget的添加菜单方式listWidget.setContextMenuPolicy(3) 设置菜单listWidget.customContextMenuRequested[QtCore.QPoint].connect() 绑定方法 此时的右键菜单是整个列表任意地方都会弹出.传递的信号参数是鼠标点击的位置 QPoint. 绑定的函数往往需要其他参数,有两种方式:1> 匿名函数connect(lambda: functi

atitit。wondows 右键菜单的管理与位置存储

原理 .这样的功能称为Windows外壳扩展(Shell Extensions) 1 常用右键菜单 atiContentMenu1 通用tool1 文件夹的右键菜单位置3 所有的文件的右键菜单位置3 右键菜文件夹模式3 原理 .这样的功能称为Windows外壳扩展(Shell Extensions) 常用右键菜单 atiContentMenu Copy As path Copy as name 通用tool 安装生成日期 排列文件列表 cmd /c dir "%L" /a /-p /o

[cb]右键菜单 GenericMenu

自定义窗口中使用右键菜单: // This example shows how to create a context menu inside a custom EditorWindow. class MyGenericMenu extends EditorWindow { @MenuItem("Game/Open Window") static function Init () { var window = GetWindow (MyGenericMenu); window.posi

使用easyui为tab页增加右键菜单

在使用easyui进行上左右布局一文中,我们已经使用easyui搭建起了一个简单的上左右布局.在使用的过程中,我们经常会遇到tab页打开的太多,但只能一个一个的关闭的烦恼,这个时候有没有想到eclipse中tab右键菜单的关闭其他和关闭所有选项呢? 下面我们就来使用easyui来实现tab页的关闭其他和关闭所有的功能. 1.在上一篇文章的html结构中添加入menu的结构 <body> <div id="home-layout"> <!-- 以前的code

dev gridcontrol添加右键菜单

概述:右键菜单肯定是GridView中经常要使用的一个功能.本文主要描述两个方面:如何在GridView中添加右键菜单,以及如何设置菜单是否可用(enable). 右键菜单肯定是gridview中经常要使用的一个功能.本文主要描述两个方面:如何在GridView中添加右键菜单,以及如何设置菜单是否可用(enable). 一.添加右键菜单 1.在VS工具箱中的“菜单和工具栏”找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,

DevExpress GridView 添加和设置右键菜单

右键菜单肯定是GridView中经常要使用的一个功能.本文主要描述三个方面:1.如何在GridView中添加右键菜单2.如何设置菜单是否可用(enable) 3.如何获取右键点击事件 一.添加右键菜单1.在VS工具箱中的"菜单和工具栏"找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,可以添加菜单项. 3.选择gridControl(注意这里不是gridView的属性),在属性中可以找到ContextMenuSt

CEdit添加右键菜单, ClistCtrl接收文件拖拽

CEdit接收文件拖拽很容易,但ClistCtrl却很难: CListCtrl添加右键菜单很容易,而CEdit却很难. 这种功能不全面,阴差阳错的感觉让人很头疼. 下面介绍一下 CEdit添加右键菜单 和 CListCtrl接收文件拖拽的方法 1. CEdit 添加右键菜单 从CEdit派生出一个类CMyEdit,添加消息ON_WM_CONTEXTMENU(),响应消息函数OnContextMenu().如下: 类定义: //自定义CMyEdit //目的为了实现CEdit添加右键菜单 clas