从Java JHotDraw中重写的getActions在上下文菜单中创建子菜单
我重写了基于Java的框架JHotDraw
的getActions
方法,这是一个托管在这里的开源项目。 方法getActions
在Drawingview
Figure
上创建一个右键单击上下文菜单。 我可以使用下面的代码正确添加addidtional上下文菜单选项。 我需要知道如何将子菜单添加到上下文菜单中。
@Override public Collection getActions(Point2D.Double p) { Collection popupMenu = new ArrayList(); popupMenu.add(new AbstractAction("add Context Option 1") { public void actionPerformed(ActionEvent event) { preformThisMethod("params"); } }); popupMenu.add(new AbstractAction("add Context Option 2") { public void actionPerformed(ActionEvent event) { preformThisMethod("params"); } }); // How to add a sub menu to the context menu? return popupMenu; }
支持添加子菜单。
类org.jhotdraw.gui.JPopupButton
扩展了JButton
以提供整个框架中使用的弹出菜单。 方法add(javax.swing.JMenu submenu)
可用于构造分层子菜单。 例如, org.jhotdraw.samples.draw.DrawingPanel
将一个Zoom
子菜单添加到creationToolbar
最右边的弹出菜单,以及其他各种编辑操作。 createFontButton()
的方法createFontButton()
是用于addFontButtonsTo()
编辑器的另一个示例。
相反,右键单击org.jhotdraw.draw.DefaultDrawingView
由org.jhotdraw.draw.DefaultDrawingView
中的javax.swing.JPopupMenu
实例处理,如org.jhotdraw.samples.mini.EditorSample
所示。 特别是, AbstractAction
属性Actions.SUBMENU_KEY
标识子菜单名称。 设置DEBUG = true
以查看效果。 目前没有定义。