我想显示文件搜索的结果。我想为文件选择启用上下文菜单,这将是系统的上下文菜单。
例如,如果用户右键单击Windows中的文件 - 我想显示带有选项的弹出菜单:
并且,如果可能的话 - 将根据操作系统自动生成此菜单。
如果这不可能或太复杂 - 我想至少启用“磁盘上的定位”选项,该选项将在文件的文件夹中打开Windows资源管理器(或其他系统中的等效文件),然后选择该文件。
该应用程序使用SWT以Java(JDK 7)编写。
答案 0 :(得分:1)
看看如何使用弹出菜单的示例:
进入handleEvent()
方法后,您可以执行所需的任何逻辑,以便将菜单项添加到上下文菜单中。
为了获得特定于平台的行为,您可以使用System.getProperty()以及“os.name”,“os.arch”和“os.version”字符串的组合来确定您是哪个平台运行。然后使用if语句有条件地将菜单项添加到菜单中。
答案 1 :(得分:0)
对于Windows,您可以实现此目的,但您必须调用一些本机COM方法。我用本机调用来做,也许可以用JNA。您需要IContextMenu2的功能。
然后,您可以扩展SWT Menu
类,使用QueryContextMenu()
填充它,将其子类化并处理WM_DRAWITEM
,WM_MEASUREITEM
,WM_INITMENUPOPUP
,{{1 }和WM_MENUSELECT
并通过WM_COMMAND
将它们转发给IContextMenu2
个实例。