2016-12-09 5 views
-3

JButtonの方法に、これをどうすればいいですか?ActionListener
(メソッドが、yeah..hmでそれをすべてを投げるためにその可能性を認識してイム。)JButtonのアクションリスナーをメソッドとして作成するには?

myJButton.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e){ 
     //do stuff 
    } 
}); 

THXのy'all、

編集:迅速な対応に感謝の誰もが、私の説明は「wasn非常にクリアです。

私はラムダの使用を見て、それは私が思っていたものとかなり異なっていましたが、他の方法もまた知っていることは素晴らしいです。

myButton.addActionListener(e -> myButtonMethod()); 

public void myButtonMethod() { 
    // code 
} 

ありがとう、皆さん。
私は次回より明確かつ迅速になるように努めます。

+2

「方法にする」とはどういう意味ですか?できるだけ具体的かつ明確にしてください。例えば、あなたは既にメソッドを持っています - 'actionPerformed(...) ' –

+0

メソッドを作成し、標準のアクションリスナーをデリゲートに追加し、そこからメソッドを呼び出します。 – dasblinkenlight

+1

lamdaまたはメソッドのリファレンスでは、 'myButton.addActionListener(e - > doSomething())'または 'myButton.addActionListener(this :: doSomethingWithEvent)' –

答えて

1

もう一度質問は不明です。

button1.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     // you can call any code you want here 
    } 
}); 

それとも、そのメソッドから外部クラスのメソッドを呼び出すことができます:

button1.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     button1Method(); 
    } 
}); 

// elsewhere 
private void button1Method() { 
    // TODO fill with code   
} 

それとも、呼び出すことができます上記のコードは方法、コードをに入れることができるというものを持っています

:そのコード

button1.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     button1Method(); 
    } 

    private void button1Method() { 
     // TODO fill with code 
    } 
}); 

それとも、ラムダを使用することができますから、内部の匿名クラスのメソッド

button2.addActionListener(e -> button2Method()); 

// elsewhere 
private void button2Method() { 
    // TODO fill with code 
} 

それとも、メソッド参照を使用することができます。

button3.addActionListener(this::button3Method); 

// elsewhere 
private void button3Method(ActionEvent e) { 
    // TODO fill with code   
} 

をあなたまで正確に、それはあなたがやろうとしているとそれをやってからあなたを防ぐことだが何であるかを明確になろうとします。

関連する問題