忽略鼠标单击javafx的舞台边框

时间:2016-06-04 08:02:04

标签: opengl canvas javafx

我正在javafx为我的音乐可视化工具创建一名创业经理。可视化工具是用OpenGL编写的,管理器将信息提供给可视化工具。在管理器中,我以只包含画布的舞台形式对可视化器进行某种预览。在画布上我想用鼠标绘制一些线条,然后将坐标传递给OpenGL。我的问题是,如果我访问mouseEvent.getX()坐标,则包含装饰,这意味着坐标不准确,或者通过装饰移动。以下是一些展示的图片:

第一个屏幕截图显示了经理。请注意,该行从左上角一直向下到右下角

第二个屏幕截图显示了可视化工具。在这里,白线不会一直到底。

1 个答案:

答案 0 :(得分:0)

我已经修复了这个问题并留下了这个答案,以备将来参考。

尝试相对缩放画布时,必须小心使用哪种方法。

创建窗口时,Stage的坐标系相对于窗口的左上角,包括装饰。添加固定大小的Node(例如Canvas)时,Stage的大小会变大。

因此,当相对于Canvas的大小缩放某些内容时,您必须使用Canvas的宽度和高度。