2

ここでホストされているオープンソースプロジェクトでgetActionsあるJavaベースのフレームワークでメソッドをオーバーライドしています。このメソッドは、で右クリックのコンテキストメニューを作成します。以下のコードを使用して、追加のコンテキストメニューオプションを正しく追加できます。コンテキストメニューにサブメニューを追加する方法を知る必要があります。JHotDrawgetActionsFigureDrawingview

@Override
public Collection<Action> getActions(Point2D.Double p) {
  Collection<Action> popupMenu = new ArrayList<Action>();
  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;
}
4

1 に答える 1

3

サブメニューの追加がサポートされています。

このクラスは、フレームワーク全体で使用されるポップアップ メニューを提供するためにorg.jhotdraw.gui.JPopupButton拡張されます。JButtonこのメソッドadd(javax.swing.JMenu submenu)を使用して、階層的なサブメニューを構築できます。たとえば、 の右端のポップアップ メニューにサブメニューをorg.jhotdraw.samples.draw.DrawingPanel追加し、その他のさまざまな編集アクションを追加します。のメソッドは、エディターに使用される別の例です。ZoomcreationToolbarcreateFontButton()org.jhotdraw.draw.action.ButtonFactoryaddFontButtonsTo()

対照的に、 の右クリックは、 に示すようにinorg.jhotdraw.draw.DefaultDrawingViewのインスタンスによって処理されます。特に、プロパティはサブメニュー名を識別します。設定して効果を確認してください。現在定義されているものはありません。javax.swing.JPopupMenuorg.jhotdraw.draw.DelegationSelectionToolorg.jhotdraw.samples.mini.EditorSampleAbstractActionActions.SUBMENU_KEYDEBUG = true

于 2012-12-01T21:24:00.140 に答える