2012-10-24 109 views
4

我有一个TextField为此我想在某些情况下显示TooltipJavaFX:如何设置正确的工具提示位置?

进行检查后,我运行followig代码:

textFieldUsername.setTooltip(new Tooltip("Enter username!")); 
textFieldUsername.getTooltip().setAutoHide(true); 
textFieldUsername.getTooltip().show(textFieldUsername, 1, 1); 

所以,当有人试图用空的用户名,他在“用户名” TextField得到一个提示Tooltip登录。

但是当涉及到行动时,Tooltip弹出在屏幕的左上角。

我应该算我的场景COORDS,再加入我的TextField COORDS给他们,或者有一种方法来设置从show()调用这些1, 1参数是相对于TextField位置?

回答

9

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

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()); 
+1

权利,在Javadoc指出:“'公共无效显示(节点ownerNode, 双screenX, 双screenY)' 示出了在指定的x弹出,相对于屏幕** y位置** “。 –