2012-10-24 93 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位置** 「。 –