我想知道是否有可能获得JavaFX
TextField
控件的位置。因为,我想在Popup
下面显示TextField
。我注意到没有任何方法可以返回此属性。有没有办法做到这一点?或者我应该使用其他方式在Popup
下方显示TextField
?提前谢谢。
答案 0 :(得分:2)
一种选择是使用localToScene(double, double)方法将TextField
的起始x,y位置转换为Point2D
。然后,这将为您提供一个点,其中包含Scene中TextField
的起始x,y位置。从那里,您可以设置标签相对于TextField
的起始位置的位置。
//TextField was declared and added to the Scene already
Point2D point = myTextField.localToScene(0.0, 0.0);
您还发现此StackOverflow问题有用,它描述了how to set a tool tip position。
答案 1 :(得分:2)
你可以获得父母的界限:
textField.getBoundsInParent()
并设置相对于该位置的弹出坐标。
有用链接:https://weblogs.java.net/blog/aim/archive/2009/01/layout_primer_f.html
答案 2 :(得分:0)
如果您已经让PopUp工作,这个答案可能不是您的最佳选择。它只是作为一个替代的想法在这里提供,以防它有用。
您可以使用ContextMenu来set a graphic node in a menu item(因此它可以显示任何内容)并且show commands which position it relative to another node。
这是StackOverflow问题中的一个选项:JavaFX 2 custom popup pane。