2016-11-07 8 views
0

私はメニュー作成者をアウトソーシングしたいので、私はクラスメニューヘルパーを作成します。そこJava - 解析メソッド他のクラスへの呼び出し

私はのMenuItemにアクションを追加する「addActionListener」という名前のメソッド

public static void addActionListener(JMenuItem menuItem) //Need parsed Method 
    { 

    menuItem.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
     //MethodeCall 
     } 
    }); 
    } 

どのように私は私が必要とするメソッド解析することができますがありますか?ストリングとして?

+0

意味が明確ではありません。メニュー項目の名前に基づいて特定のリスナーを作成しますか? – GhostCat

+0

私は、常に同じaddActionListenerを持つが、他のメソッド呼び出し(例えば、ReadFile(File tfile)、LoadFile(File tfile))を持つ10個のmenuitemを持っています。だから私はexternメソッド "addActionListener" – Drextor

+0

@Drextorでコードを減らしたいと思います重複してコードを表示してください。あなたの(静的な!!!)メソッドを使用するあなたのアプローチは本当に役立つものではありません。 –

答えて

2

コールバックメソッドまたはjava 8ラムダ式を使用できます。

public static void addActionListener(JMenuItem menuItem, Callback callback) //Need parsed Method { 
    menuItem.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 
      callback.doAction(); 
     } 
    }); 
} 
+0

しかし、発信側の違いは何ですか? 'Callback'または' ActionListener'の匿名インスタンス(またはラムダ)を作成すると、コードが使用されている場所では(大きな)違いはありません。 –

+0

この投稿は、http:///stackoverflow.com/questions/13203966/anonymous-class-override-vs-passing-an-interface-for-designing-callbacks-in-jav –

関連する問題