我使用JTextField
在JFrame
中添加了BorderLayout
现在我想知道JTextField
的位置。
我使用了getX()
和getLocation()
,但两者都给了我0
,这不是正确答案。
那么我该如何获得该位置?
答案 0 :(得分:2)
getLocation()方法给出组件相对于其父组件的位置,在本例中为内容窗格,因此该位置实际上可能为0.此外,在框架可见之前,您无法调用该方法。
如果您想要相对于框架的位置,则需要使用
SwingUtilities.convertPoint(...);
答案 1 :(得分:2)
在组件中调用getLocation()
(JTextField
)应将其坐标 relative 返回到父容器(在下面的示例中为JFrame
)。
注意:在获取坐标之前,您必须在容器(JFrame
)中执行布局。 />
只需显示即可完成布局。
示例强>:
JFrame fr = new JFrame("Testing window");
JTextField tf = new JTextField();
fr.add(tf, BorderLayout.CENTER);
fr.setVisible(true); //show the JFrame
Point p = tf.getLocation(); //get the coordinates