java使点可拖动并存储新坐标JavaFx
我有这个:
Circle circle = null;
List<Circle> circles = new ArrayList<>();
for(List row: list) //list is list of coordinates i.e. [[200,100],[10,5.5],[15,100],[200,25]...]
{
circle = new Circle((double) row.get(0), (double) row.get(1), 4f);
circle.setFill(Color.BLUE);
Tooltip toolTipx = new Tooltip("The point is : " + (double) row.get(0));
Tooltip.install(circle, toolTipx);
circles.add(circle);
}
System.out.println(circles.size());
Pane pane = new Pane();
pane.getChildren().addAll(circles);
这将完美地在窗口上绘制所述点,工具提示将描绘该点的坐标
现在,我想要的是创建可拖动的绘制点。这样我就可以将点拖动到窗口中的任何位置,新的位置(拖动点的坐标)将存储在工具提示或窗口末端的固定标签中
我遇到了this(makeDraggable()),但找不到一个起点
我怎样才能做到这一点?谢谢
# 1 楼答案
使用:
在任何创建的圆/点上触发鼠标标记事件。 然后,简单地用
event.getX()
(目标X点)和event.getY()
(目标Y点)重置centerX和centerY我的完整代码:
# 2 楼答案
下面是一个示例,可以通过在窗格中拖动来实现这一点。 只有两点,但你可以在列表中列出你想要的任意多点。 还有一个帮助器类可以更好、更容易地处理一个点,还有一些帮助器方法可以使代码更容易阅读
我想把Main/fxml/Controller分开,但请随时为您获取相关信息
文件如下:
控制器:
主要内容:
Fxml:
希望有帮助