我有一个 TextField
我想要一个 Tooltip
在某些情况下显示。
执行检查后,我运行以下代码:
textFieldUsername.setTooltip(new Tooltip("Enter username!"));
textFieldUsername.getTooltip().setAutoHide(true);
textFieldUsername.getTooltip().show(textFieldUsername, 1, 1);
因此,当有人尝试使用空用户名登录时,他会收到提示
Tooltip
超过“用户名”TextField
.但说到行动,
Tooltip
在屏幕的左上角弹出。我应该计算我的场景的坐标,然后添加我的
TextField
坐标到它们,或者有一种方法可以设置这些 1, 1
来自 show()
调用的参数相对于TextField
位置?
最佳答案
我认为坐标总是相对于屏幕。要计算组件坐标,您需要合并场景和窗口坐标。
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());
关于position - JavaFX:如何设置正确的工具提示位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13049362/