Skip to content

MouseClickListener (Mauseingaben)1

Auf Mausklick reagieren: Kreise malen

Das folgende Beispiel malt bei jedem Knopfdruck einen Kreis.2

Zum Java-Code: demos/tutorials/user_input/mouse/PaintingCirclesDemo.java

public class PaintingCirclesDemo extends Scene implements MouseClickListener
{
    public PaintingCirclesDemo()
    {
        addMouseClickListener(this);
    }

    private void paintCircleAt(double mX, double mY, double diameter)
    {
        Circle circle = new Circle(diameter);
        circle.setCenter(mX, mY);
        add(circle);
    }

    @Override
    public void onMouseDown(Vector position, MouseButton mouseButton)
    {
        paintCircleAt(position.getX(), position.getY(), 1);
    }
}

Schnittstelle MouseClickListener

Das Interface MouseClickListener ermöglicht das Reagieren auf Mausklicks des Nutzers. Ebenso ermöglicht es das Reagieren auf Loslassen der Maus.

Bei einem Mausklick (egal ob linke, rechte, oder sonstige Maustaste) wird ein Kreis an der Position des Klicks erstellt:

@Override
public void onMouseDown(Vector position, MouseButton mouseButton)
{
    paintCircleAt(position.getX(), position.getY(), 1);
}

Vector

Statt zwei double-Parametern für die X/Y-Koordinaten des Klicks, nutzt die Engine hier die interne Klasse Vector. Die Klasse Vector wird in der Engine durchgehend verwendet und ist essentiell für die Arbeit mit der Engine.3

Ein besseres Kreismalen: Auswählbare Größe und Farbe über ein kleines Menü

Zum Java-Code: demos/tutorials/user_input/mouse/PaintingCirclesAdvancedDemo.java