如何使用鼠标绘制带有两个图像的线,以及如何使用javafx拖动带有图像的线?

如何使用鼠标绘制带有两个图像的线,以及如何使用javafx拖动带有图像的线?,java,javafx,Java,Javafx,我试图使用鼠标在图像之间画一条线,但当我拖动时,该线也没有正确拖动 public class line1 extends Application { final Image image1=new Image("image/MME.png"); final Image image2=new Image("image/HSS.png"); final ImageView i1=new ImageView(); final ImageView i2=new Ima

我试图使用鼠标在图像之间画一条线,但当我拖动时,该线也没有正确拖动

public class line1 extends Application {
    final Image image1=new Image("image/MME.png");

    final Image image2=new Image("image/HSS.png");
     final ImageView i1=new ImageView();
     final ImageView i2=new ImageView();
        Line line;

            @Override
     public void start(Stage primaryStage) throws Exception {
          final BorderPane root = new BorderPane();
          i1.setImage(image1);
          i1.setLayoutX(200);
          i1.setLayoutY(300);
          i2.setImage(image2);
          i2.setLayoutX(50);
          i2.setLayoutY(50);
          i1.setCursor(Cursor.CROSSHAIR);


         root.getChildren().addAll(i1,i2);
         root.setOnMousePressed(new EventHandler<MouseEvent>() {
             public void handle(MouseEvent event) {
                  double x = event.getX();
                  double y = event.getY();
                  line = new Line(x, y, x, y);
                  root.getChildren().add(line);
                               }
        });
        root.setOnMouseDragged(new EventHandler<MouseEvent>() {
             public void handle(MouseEvent event) {
                      line.setEndX(event.getX());
                       line.setEndY(event.getY());
                   }
        });
        i1.setOnMouseDragged(new EventHandler<MouseEvent>() {
             public void handle(MouseEvent event) {
                 line.setStartX(event.getScreenX());
                 line.setStartY(event.getScreenY());    
                 line.setEndX(i2.getLayoutX());
                 line.setEndY(i2.getLayoutY());
                 i1.setLayoutX(event.getScreenX());
                 i1.setLayoutY(event.getScreenY());
                 root.getChildren().add(line);
             }
             });


          primaryStage.setScene(new Scene(root, 1350, 850));
          primaryStage.show();
     }

         public static void main(String[] args) {launch(args);}
}
公共类line1扩展了应用程序{
最终图像image1=新图像(“Image/MME.png”);
最终图像image2=新图像(“Image/HSS.png”);
最终图像视图i1=新图像视图();
最终图像视图i2=新图像视图();
线条;
@凌驾
public void start(Stage primaryStage)引发异常{
最终边界窗格根=新边界窗格();
i1.设置图像(图像1);
i1.设置布局X(200);
i1.设置布局(300);
i2.设置图像(图像2);
i2.设置布局X(50);
i2.设置布局(50);
i1.设置光标(光标.十字线);
root.getChildren().addAll(i1,i2);
setOnMousePressed(新的EventHandler(){
公共无效句柄(MouseeEvent事件){
double x=event.getX();
双y=event.getY();
行=新行(x,y,x,y);
root.getChildren().add(行);
}
});
setOnMouseDrawed(新的EventHandler(){
公共无效句柄(MouseeEvent事件){
line.setEndX(event.getX());
line.setEndY(event.getY());
}
});
i1.setOnMouseDrawed(新的EventHandler(){
公共无效句柄(MouseeEvent事件){
line.setStartX(event.getScreenX());
line.setStartY(event.getScreenY());
line.setEndX(i2.getLayoutX());
line.setEndY(i2.getLayoutY());
i1.setLayoutX(event.getScreenX());
i1.setLayoutY(event.getScreenY());
root.getChildren().add(行);
}
});
原始阶段。设置场景(新场景(根,1350850));
primaryStage.show();
}
公共静态void main(字符串[]args){launch(args);}
}