2017-02-20 1 views
1

Ich möchte die Stelle auf ImageView, wo Benutzer klicken. Ich erhalte die Koordinaten, an denen der Benutzer klickt, aber wie wird der Punkt an diesem Punkt hinzugefügt? Ist es möglich, einen Punkt an den angegebenen Koordinaten hinzuzufügen? Wenn ja wie?Fügen Sie einen Punkt auf JavaFx ImageView

Antwort

2

Sie können eine Circle oder andere Shape für einen Spot verwenden. Fügen Sie jeder Maus, die mit einer neuen Position angeklickt wurde, einen neuen Punkt hinzu. Sehen Sie sich diese Demo,

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); 
    } 
} 

Hinweis: Verwenden Sie das Pane Layout als Mutter Wurzel für die Bildansicht und Flecken für die Positionierung. Warum? Überprüfen Sie die Antwort von @jewelsea auf Explicitly positioning nodes in JavaFX.

+0

plus 1 Dank Bro ... Sie sparen meinen Tag –

+0

Ja, viel Glück! –

Verwandte Themen