2017-02-20 73 views

回答

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

+0

加1感谢兄弟你救了我的一天 –

+0

是的,祝你好运! –