1,构建一个Action
public Action bind(String name, final Action action, String iconUrl) {
return new AbstractAction(name, (iconUrl != null) ? new ImageIcon(
BasicGraphEditor.class.getResource(iconUrl)) : null) {
public void actionPerformed(ActionEvent e) {
action.actionPerformed(new ActionEvent(getGraphComponent(), e
.getID(), e.getActionCommand()));
}
};
}
其中name为menu名,action为具体的操作行为,iconUrl当要显示操作图片前缀或者后缀的时候才需要。
2,上面的action参数构造方法可以参考
public static class HistoryAction extends AbstractAction
{
/**
*
*/
protected boolean undo;
/**
*
*/
public HistoryAction(boolean undo)
{
this.undo = undo;
}
/**
*
*/
public void actionPerformed(ActionEvent e)
{
BasicGraphEditor editor = getEditor(e);
if (editor != null)
{
if (undo)
{
editor.getUndoManager().undo();
}
else
{
editor.getUndoManager().redo();
}
}
}
}
3,添加到JPopupMenu中去
JPopupMenu.add(...bind("name", new HistoryAction(), "/com/icon.jpg"))