| 
       メソッド 
       | 
      
       説明 
       | 
    
    
      | 
       コンストラクタ 
       | 
      
       public PopupPulldownMenu(String commandName, String[] menuItemNames, ImageIcon[]
      icons, String[] accelerators) 
      引数: 
      commandName - コマンド名 
       "shape popup menu"、"group popup menu"、"edit
      shape popup menu"など 
      menuItemNames - メニューアイテム名 
      icons - メニューアイテムに貼り付けるImageIcon 
      iconsにnullを指定したら、全てのmenuItemにIconを設定しない。またicons[i]==nullならばi番目のmenuItemにはIconを設定しない。 
      accelerators - accelerator文字列の配列。 
       accelerators[i]がnullでなければmenuItem.setAccelerator(stroke)でacceleratorを設定。 
       | 
    
    
      | 
       setMenuItems 
       | 
      
       public void setMenuItems(String[] menuItemNames, ImageIcon[] imageIcons,
      String[] accelerators) 
      テキストとImageIconからなるメニューアイテムの設定を行う。 
      ボタンやチェックボックスを設定するメニューアイテムはこのメソッドを使わずに独自に設定する。引数は配列になっており、メニューアイテムの数だけ指定する。 
      引数: 
      menuItemNames - メニューアイテム名の配列。 
      imageIcons - メニューアイテムに表示するImageIconの配列。 
      accelerators - メニューアイテムに設定するアクセラレータの配列。 
      処理: 
      ①メニューアイテム名とアクセラレータを表示する最大幅と最大高さを計算。 
      ②メニューアイテムを設定する。 
      メニューアイテム名の文字列とIcon画像の表示位置を確実に整列させるため、各々をLabelに張りつけ、LabelのサイズをsetPreferredSizeメソッドで指定する。文字列を貼り付けるLabelのサイズは①で求めた文字列の最大表示幅にマージンを加えた値、ImageIconを貼り付けるLabelのサイズは、原画像のサイズから決める。 
       | 
    
    
      | 
       getTextLayoutSize 
       | 
      
       private Dimension getTextSize(String text, Font font) 
      引数textで指定されるテキストを、引数fontで描画するときのテキストのサイズをDimensionオブジェクトで返す。 
      TextLayoutオブジェクトを作成し、getAdvance、getAscent、getDescentメソッドを使ってテキストのサイズを取得する。 
       | 
    
    
      | 
       getMenuItem 
       | 
      
       public JMenuItem getMenuItem(String menuItemName) 
      メニューアイテム名を指定してJMenuItemオブジェクトを返す。 
      JPopupMenuのgetComponentsメソッドでJMenuItemオブジェクトを取得。JMenuItemオブジェクトのComponent名とmenuItemNameをCommand.compareStringsメソッドで比較し、一致するオブジェクトを返す。 
       | 
    
    
      | 
       setEnable 
      ToAllMenuItems 
       | 
      
       public void setEnableToAllMenuItems() 
       このJPopupMenuの全てのメニュアイテムを選択可能にする、 
       | 
    
    
      | 
       show 
       | 
      
       public void showMenu(Point point, ShapeContainer container) 
      引数: 
      point - ポップアップメニューを開くためにマウスの右ボタンを押した点 
      container - ShapeContainerオブジェクトまたはnull 
      処理: 
      ExecPopupMenu.showから呼ばれ、プルダウンメニューを表示する。 
      this.point=point; 
      this.container=container; 
      this.show(ObjectTable.getDrawPanel(), (int)point.getX(), (int)point.getY()); 
       | 
    
    
      | 
       createSingleShapePopupMenu 
       | 
      
       public static void createSingleShapeContainerPopupMenu() 
      図形要素用のPopupPulldownMenu 
      次のように引数を設定しコンストラクターを呼ぶ。 
      String commandName=Command.getCommandString(Command.SHAPE_POPUP_MENU); 
      String[] imageName={"", "", "", "",
      "", ""}; 
      String[] menuItemNames={"cut", "copy", "delete",
      "add text box", "modify shape",  
      "shape format"}; 
       | 
    
    
      | 
       createGroupShapePopupMenu 
       | 
      
       public static void createGroupShapeContainerPopupMenu() 
      グループ図形用のPopupPulldownMenu 
      次のように引数を設定しコンストラクターを呼ぶ。 
      String commandName=Command.getCommandString(Command.GROUP_POPUP_MENU); 
      String[] imageName={"", "", "", ""}; 
      String[] menuItemNames={"cut", "copy", "delete",
      "shape format"}; 
       | 
    
    
      | 
       createDrawPanelPopupMenu 
       | 
      
       public static void createDrawPanelPopupMenu() 
      DrawPanel用のPopupPulldownMenu 
      次のように引数を設定しコンストラクターを呼ぶ。 
      String commandName=Command.getCommandString(Command.DRAWPANEL_POPUP_MENU); 
      String[] imageName={"", ""}; 
      String[] menuItemNames={"paste", "draw panel information"}; 
       | 
    
        
          |   | 
          public static void createTextBoxPopupMenu() |