我希望用户点击的ImageView
点。我正在获取用户点击的坐标但是如何在该点上添加点?
是否可以在指定坐标上添加点?如果是的话怎么样?
答案 0 :(得分:2)
您可以使用Circle或其他Shape作为广告。在点击的位置每次鼠标单击时添加一个新点。查看此演示
public class ImageViewSpotDemo extends Application {
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
ImageView image = new ImageView(new Image("file:src/path/image.png"));
image.setOnMouseClicked(e -> {
//A new spot
Circle spot = new Circle(4);
spot.setFill(Color.WHITE);
spot.setCenterX(4.0f);
spot.setCenterY(4.0f);
double x = e.getSceneX() - 3;
double y = e.getSceneY() - 3;
spot.setLayoutX(x);
spot.setLayoutY(y);
root.getChildren().add(spot);
});
root.getChildren().add(image);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
注意:使用Pane布局作为图像视图的父根和定位点。为什么?在Explicitly positioning nodes in JavaFX上查看@jewelsea的回答。