JavaFx中对象的SnapLineSnapResult

JavaFx中对象的SnapLineSnapResult,javafx,Javafx,目前,我有一个项目,用于绘制具有线条和图像的房间,用户可以通过点击表示他们想要添加的内容的按钮来选择这些线条和图像。也就是说,如果他们想要淋浴,按下淋浴按钮,窗格中会出现一个图像。淋浴可以在窗格中调整大小和移动。用户还可以使用线绘制对象或墙。这些线可以调整大小、旋转或移动。我现在正试图让这些对象相互作用。假设用户正在使用线条创建对象,当线条靠近另一个对象时,正在移动的线条将捕捉到另一个对象。我发现了一个第三方库,其中包含SnapLineSnapResult,但我没有看到任何人使用过它的地方。这是

目前,我有一个项目,用于绘制具有线条和图像的房间,用户可以通过点击表示他们想要添加的内容的按钮来选择这些线条和图像。也就是说,如果他们想要淋浴,按下淋浴按钮,窗格中会出现一个图像。淋浴可以在窗格中调整大小和移动。用户还可以使用线绘制对象或墙。这些线可以调整大小、旋转或移动。我现在正试图让这些对象相互作用。假设用户正在使用线条创建对象,当线条靠近另一个对象时,正在移动的线条将捕捉到另一个对象。我发现了一个第三方库,其中包含SnapLineSnapResult,但我没有看到任何人使用过它的地方。这是桌面JavaFX可用的东西,还是触摸操作,有人有代码来建模或其他解决方案

如果我可以使用这个类,我的代码行将非常有用,如下所示:

    line.setOnMouseDragged((MouseEvent event1) -> {
                    // in resize region
                    if (isInResizeZoneLine(line, event1)) {
                        // adjust line
                        line.setEndX(event1.getX());
                    }
                    // in movable region
                    else {
                        Point2D currentPointer = new Point2D(event1.getX(), event1.getY());
                        if (bound.getBoundsInLocal().contains(currentPointer)) {
   /*--------*/             // potential place for if (near other object to be snapped)
                            double lineWidth = line.getEndX() - line.getStartX();
                            line.setStartY(currentPointer.getY());
                            line.setEndY(currentPointer.getY());
                            line.setStartX(currentPointer.getX() - lineWidth/2);
                            line.setEndX(currentPointer.getX() + lineWidth/2);
                        }
                    }
                });

这不是JavaFX的一部分;它是第三方图书馆的一部分。就我所知,从一个非常快速的回顾来看,这个库没有与JavaFX集成,看起来它在某种程度上与AWT和Swing集成了——它看起来也都是Java 5之前的版本。James_D看起来像JavaFX 1.0,但它是我能找到的最接近我想要的。我可能最终不得不自己动手,但我希望GUI交互比我的黑客技术更好。