我有TextField
我希望在某些情况下显示Tooltip
。
执行检查后,我运行以下代码:
textFieldUsername.setTooltip(new Tooltip("Enter username!"));
textFieldUsername.getTooltip().setAutoHide(true);
textFieldUsername.getTooltip().show(textFieldUsername, 1, 1);
因此,当有人尝试使用空用户名登录时,他会在“用户名”Tooltip
上收到提示TextField
。
但是当涉及到行动时,屏幕左上角会弹出Tooltip
。
我应该计算场景的坐标,然后将TextField
坐标添加到它们中,或者有一种方法可以将1, 1
的{{1}}个参数设置为相对于show()
TextField
位置?
答案 0 :(得分:11)
我认为坐标总是相对于屏幕。要计算组件坐标,您需要合并场景和窗口坐标。
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());