Right click in JavaFX?

Viewed 32673

How do I detect/handle a right click in JavaFX?

3 Answers

If you are wondering about handling right-click events in JavaFX, and find the 2009 answer is somewhat outdated by now... Here is a working example 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();
    }
}

This worked fine for me:

rectangle.setOnMouseClicked(event ->
    {
//left click
        if (event.isPrimaryButtonDown()) {
              
        }
//right click
        if (event.isSecondaryButtonDown()) {
              
        }
});
Related