ふたつのやり方:
1.クラスに ActionListener を実装してから使用します。jBtnSelection.addActionListener(this);
後でメソッドを定義する必要がありますpublic void actionPerformed(ActionEvent e)
。ただし、複数のボタンに対してこれを行うと、actionPerformed
メソッドが各イベントのソース ( e.getSource()
) をチェックしてどのボタンから発生したかを確認する必要があるため、混乱する可能性があります。
2.匿名内部クラスを使用します。
jBtnSelection.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selectionButtonPressed();
}
} );
後で、定義する必要がありますselectionButtonPressed()
。アクションを処理するための個々のメソッドへの呼び出しはボタンの定義のすぐ隣にあるため、これは複数のボタンがある場合にうまく機能します。
2、更新。Java 8 でラムダ式が導入されたため、基本的に #2 と同じことを言えますが、使用する文字数は少なくなります。
jBtnSelection.addActionListener(e -> selectionButtonPressed());
この場合e
は ActionEvent です。これが機能するのは、ActionListener インターフェイスにメソッドが 1 つしかないためactionPerformed(ActionEvent e)
です。
selectionButtonPressed
2 番目のメソッドでは、メソッドを直接呼び出すこともできます。この場合、selectionButtonPressed()
タイマーがオフになったときなど、他のアクションが発生した場合にも呼び出すことができます (ただし、この場合、メソッドには別の名前が付けられますselectionChanged()
)。