右键单击JavaFX?

javafx javafx-1

18449 观看

2回复

14181 作者的声誉

如何在JavaFX中检测/处理右键单击?

作者: mikewilliamson 的来源 发布者: 2009 年 10 月 4 日

回应 (2)


22

980 作者的声誉

决定

这是一种方式:

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 ]
    }
}
作者: Matthew Hegarty 发布者: 05.10.2009 04:03

2

155 作者的声誉

如果您想知道如何在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();
}
}
作者: Paul S 发布者: 27.05.2019 02:58
32x32