2017-02-20 17 views
1

私はスポットがImageViewの上でユーザがクリックする場所にします。ユーザーがクリックする座標を取得していますが、そのポイントにスポットを追加する方法はありますか? 指定した座標にスポットを追加することはできますか?はいの場合はどうですか?JavaFx ImageViewにスポットを追加

答えて

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レイアウトを使用してください。どうして? @ jewelseaの回答をExplicitly positioning nodes in JavaFXにチェックしてください。

+0

プラス1ありがとうございました。あなたは私の一日を節約しました。 –

+0

うん、幸運! –

関連する問題