在JavaFx ImageView上添加一个点

时间:2017-02-20 07:26:56

标签: java javafx imageview javafx-8

我希望用户点击的ImageView点。我正在获取用户点击的坐标但是如何在该点上添加点? 是否可以在指定坐标上添加点?如果是的话怎么样?

1 个答案:

答案 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的回答。