【初心者】Java質問・相談スレッド103【大歓迎】at TECH【初心者】Java質問・相談スレッド103【大歓迎】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト482:481 07/07/09 17:01:07 書いた直後なんですが、1つ目できました ボタン処理のようにJMenuItemごとにアクションリスナーを登録するという方法があるようで、そうするとメニュー選択時に呼ばれるようになりました。 どうも、検索したときのキーワードの範囲が広すぎたようね… 2つ目はいまだわからず、getComponentだとパネルの位置はわかるんですが、ActionCommandのように得ることはできないですかね。 483:デフォルトの名無しさん 07/07/09 17:25:50 処理名称は一緒だが処理内容が異なるのなら、 (Wordなら、文字の削除とオートシェイプの削除、など) ActionMapで振り分けるとか。 JPanel p1 = new JPanel(); p1.getActionMap().put("edit", new AbstractAction(){ public void actionPerformed(ActionEvent e){ // 編集時の処理 } }; p1.getActionMap().put("delete", new AbstractAction(){ public void actionPerformed(ActionEvent e){ // 削除時の処理 } }; のようなJPanelを用意しておいて、JPopupMenu表示時には ActionMapからJMenuItemを組み立てる。こんな感じ private JPopupMenu createMenu(ActionMap map){ JPoppuMenu menu = new JPopupMenu(); JMenuItem editItem = new JMenuItem("編集"); if(map.get("edit") != null){ editItem.setAction(map.get("edit")); } else { editItem.setEnable(false); } menu.add(editItem); // 以下略 return menu; } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch