سؤال

كيف يمكنني الكشف عن / التعامل مع النقر بزر الماوس الأيمن في Javafx؟

هل كانت مفيدة؟

المحلول

هنا طريقة واحدة:

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 ]
    }
}

نصائح أخرى

إذا كنت تتساءل عن التعامل مع الأحداث النقدية بزر الماوس الأيمن في Javafx، والعثور على إجابة 2009 قديمة إلى حد ما من الآن ... وهنا مثال عمل في 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();
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top