JavaOracles JavaFX示例,鼠标点击位置标签错误?
在http://docs.oracle.com/javafx/2/charts/pie-chart.htmOracle建议使用
caption.setTranslateX(e.getSceneX());
caption.setTranslateY(e.getSceneY());
要将标签放置在单击鼠标的位置。。但这根本不起作用。请参阅此打印屏幕以获取校样:
你可以在下面搜索框中键入要查询的问题!
在http://docs.oracle.com/javafx/2/charts/pie-chart.htmOracle建议使用
caption.setTranslateX(e.getSceneX());
caption.setTranslateY(e.getSceneY());
要将标签放置在单击鼠标的位置。。但这根本不起作用。请参阅此打印屏幕以获取校样:
# 1 楼答案
在code for the example you cite中
PieChart
和标题Label
都直接放置在场景的根目录Group
中。因此,在应用转换之前Label
的位置是(0,0)
(在Scene
的左上角),因此通过(e.getSceneX(), e.getSceneY())
转换将其移动到鼠标的位置如果您的布局不同,那么相同的计算不一定有效。要获得更一般的解决方案,请将图表和标题放在
Group
中,然后调用Group
上的sceneToLocal(...)
,将场景坐标转换为Group
中的正确坐标: