MouseListenerとは
java.awt.event.MouseListener
(引用元 : MouseListener (Java Platform SE 8 ) )
コンポーネント上の「関連する」マウス・イベント(プレス、リリース、クリック、フォーカス取得、フォーカス喪失)を受け取るためのリスナー・インタフェースです。マウスの移動およびドラッグを追跡するには、MouseMotionListenerを使用します。
簡単に要約するとマウスのクリックや、ドラッグ等を検知してくれるインターフェイスです。
実装方法
マウス・イベントの処理に関連するクラスは、このインタフェース(および含まれているすべてのメソッド)を実装するか、抽象クラスMouseAdapterを拡張します(関連するメソッドだけをオーバーライド)。
そのクラスから作成されたリスナー・オブジェクトは、コンポーネントのaddMouseListenerメソッドを使ってコンポーネントに登録されます。
-
MouseListener
インターフェイスを実装するか、MouseAdapter
を拡張する。 -
addMouseListener
メソッドを使ってコンポーネントに登録する。
この2.の処理は『登録されます』と書いてありますが、実際には自分で記述する必要があります。
JavaでのMouseListener
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class EventTest extends Applet implements MouseListener{
public void init(){
addMouseListener(this);
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mouseClicked(MouseEvent e){
}
}
引用元 : Javaでのイベント処理方法 - イベント処理 - Javaアプレット入門 - JavaDrive
これを参考にProcessingでも MouseListener
インターフェイスを実装したクラスを作成していきましょう。
addMouseListener
は java.awt.Component
のメソッドです。
public void addMouseListener(MouseListener l)
このコンポーネントからマウスイベントを受け取るために、指定されたマウスリスナーを追加します。
引用元 : Component (Java Platform SE 8 )
Processingで書こう
this.surface.getNative()
は processing.awt.PSurfaceAWT.SmoothCanvas
のインスタンスを返します。これは java.awt.Component
のサブクラスなので、 addMouseListener
をすることができます。
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.Component;
void setup() {
size(300, 300);
Component component = (Component) this.surface.getNative();
component.addMouseListener(new MyMouseListener());
}
void draw() {
}
class MyMouseListener implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
println("Clicked");
}
@Override
public void mouseEntered(MouseEvent e) {
println("Entered");
}
@Override
public void mouseExited(MouseEvent e) {
println("Exited");
}
@Override
public void mousePressed(MouseEvent e) {
println("Pressed");
}
@Override
public void mouseReleased(MouseEvent e) {
println("Released");
}
}