从Java JHotDraw中重写的getActions在上下文菜单中创建子菜单

我重写了基于Java的框架JHotDrawgetActions方法,这是一个托管在这里的开源项目。 方法getActionsDrawingview 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.DefaultDrawingVieworg.jhotdraw.draw.DefaultDrawingView中的javax.swing.JPopupMenu实例处理,如org.jhotdraw.samples.mini.EditorSample所示。 特别是, AbstractAction属性Actions.SUBMENU_KEY标识子菜单名称。 设置DEBUG = true以查看效果。 目前没有定义。