JavaFX:如何设置正确的工具提示位置?

Che*_*lin 5 position javafx tooltip javafx-2

我有一个TextField我希望Tooltip在某些情况下展示的东西.

执行检查后,我运行以下代码:

textFieldUsername.setTooltip(new Tooltip("Enter username!"));
textFieldUsername.getTooltip().setAutoHide(true);
textFieldUsername.getTooltip().show(textFieldUsername, 1, 1);
Run Code Online (Sandbox Code Playgroud)

因此,当有人尝试使用空用户名登录时,他会收到Tooltip"用户名" 的提示TextField.

但是当涉及到动作时,Tooltip屏幕左上角会弹出.

我应该计算我的场景的坐标,然后将我的TextField坐标添加到它们,或者有一种方法可以设置这些1, 1参数来调用show()相对于TextField位置的调用?

amr*_*mru 12

我认为坐标总是相对于屏幕.要计算组件坐标,您需要合并场景和窗口坐标.

Point2D p = label.localToScene(0.0, 0.0);
label.getTooltip().show(label,
        p.getX() + label.getScene().getX() + label.getScene().getWindow().getX(),
        p.getY() + label.getScene().getY() + label.getScene().getWindow().getY());
Run Code Online (Sandbox Code Playgroud)