将节点附加到鼠标坐标除了使用getWidth()时有效

时间:2018-06-10 20:01:33

标签: java javafx javafx-8

所以这段代码

// Similiar movement made on OnMouseEntered
cell.getContainer().setOnMouseMoved(event -> {
            itemInfoTip.moveLayoutXY(event.getSceneX()-300, event.getSceneY()+10);
        });

完全符合预期。但是我的itemInfoTip在某些点上可能比300px宽,所以如果我这样做:

// Similiar movement made on OnMouseEntered
    cell.getContainer().setOnMouseMoved(event -> {
            itemInfoTip.moveLayoutXY(event.getSceneX()-itemInfoTip.getTipContainer().getWidth(), event.getSceneY()+10);
        });

几乎有效。

当添加itemInfoTip时,它首先看起来似乎没有删除它的宽度:

enter image description here

然后第二个鼠标移动了一个像素,它会捕捉到正确的位置,从那时起它将正常工作。它只是“快照”。它出现的第一次,之后它很顺利。

enter image description here

我只是得到这种行为似乎在设置布局坐标时我调用了像getWidth()这样的方法。猜测可能是getWidth()需要首先绘制节点才能返回正确的值吗?如果是这样,我该如何解决这个问题?

0 个答案:

没有答案