Scenebuilder/JavaFX 多边形鼠标事件 onClick
Scenebuilder/JavaFX polygons mouse event onClick
Link 到 scenebuilder 和一些 Java 代码:https://imgur.com/a/FOr1Mag
本质上,导航和图片会根据人所在的位置而改变 going/facing。
我将多边形用作方向键箭头,我希望能够检测到有人单击它们的时间。 "up" 箭头多边形 ID 为 "forward"
我读到可以使用 forward.onMouseClickedProperty.addListener() 或其他东西,但是当我查找 "javafx polygon mouse event" 时,我不知道如何在我的项目中实施。
谁能告诉我如何设置 forward.onMouseClickedProperty.addListener()?
谢谢!
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class ClickablePolygonApp extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Polygon polygon = new Polygon();
polygon.getPoints().addAll(new Double[] {
0., 80.,
80., 80.,
40., 20.
});
StackPane stackPane = new StackPane(polygon);
stackPane.setPrefSize(400., 400.);
stage.setScene(new Scene(stackPane));
stage.show();
polygon.setOnMouseClicked(mouseEvent -> System.out.println("1st way to handle Click!"));
polygon.addEventHandler(MouseEvent.MOUSE_CLICKED, mouseEvent -> System.out.println("2nd way to handle click!"));
}
}
Link 到 scenebuilder 和一些 Java 代码:https://imgur.com/a/FOr1Mag
本质上,导航和图片会根据人所在的位置而改变 going/facing。
我将多边形用作方向键箭头,我希望能够检测到有人单击它们的时间。 "up" 箭头多边形 ID 为 "forward"
我读到可以使用 forward.onMouseClickedProperty.addListener() 或其他东西,但是当我查找 "javafx polygon mouse event" 时,我不知道如何在我的项目中实施。
谁能告诉我如何设置 forward.onMouseClickedProperty.addListener()? 谢谢!
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class ClickablePolygonApp extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Polygon polygon = new Polygon();
polygon.getPoints().addAll(new Double[] {
0., 80.,
80., 80.,
40., 20.
});
StackPane stackPane = new StackPane(polygon);
stackPane.setPrefSize(400., 400.);
stage.setScene(new Scene(stackPane));
stage.show();
polygon.setOnMouseClicked(mouseEvent -> System.out.println("1st way to handle Click!"));
polygon.addEventHandler(MouseEvent.MOUSE_CLICKED, mouseEvent -> System.out.println("2nd way to handle click!"));
}
}