Frage

Wie kann ich erkennen, / handhaben Sie einen Rechtsklick in JavaFX?

War es hilfreich?

Lösung

Hier ist eine Möglichkeit:

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.scene.paint.Color;
import javafx.scene.input.*;

var r = Rectangle {
    x: 50, y: 50
    width: 120, height: 120
    fill: Color.RED
    onMouseClicked: function(e:MouseEvent):Void {
        if (e.button == MouseButton.SECONDARY) {
            println("Right button clicked");
        }
    }
}

Stage {
    title : "ClickTest"
    scene: Scene {
        width: 200
        height: 200
        content: [ r ]
    }
}

Andere Tipps

Wenn Sie mit der rechten Maustaste Ereignisse über den Umgang mit in JavaFX fragen sich, und finden Sie die 2009 Antwort ist inzwischen etwas veraltet ... Hier ist ein funktionierendes Beispiel in Java 11 (openjfx):

public class RightClickApplication extends Application
{

    @Override
    public void start(Stage primaryStage) throws Exception
    {
        primaryStage.setTitle("Example");
        Rectangle rectangle = new Rectangle(100, 100);
        BorderPane pane = new BorderPane();
        pane.getChildren().add(rectangle);

        rectangle.setOnMouseClicked(event ->
        {
            if (event.getButton() == MouseButton.PRIMARY)
            {
                rectangle.setFill(Color.GREEN);
            } else if (event.getButton() == MouseButton.SECONDARY)
            {
                rectangle.setFill(Color.RED);
            }
        });
        primaryStage.setScene(new Scene(pane, 200, 200));
        primaryStage.show();
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top