我使用BorderLayout
在JFrame
中添加了JTextField
。
现在我想知道JTextField
的位置。获取JFrame中JTextField的坐标
我用getX()
和getLocation()
,但都给我0
,这不是正确的答案。
那么我如何获得该位置?
我使用BorderLayout
在JFrame
中添加了JTextField
。
现在我想知道JTextField
的位置。获取JFrame中JTextField的坐标
我用getX()
和getLocation()
,但都给我0
,这不是正确的答案。
那么我如何获得该位置?
的成分(JTextField
)调用getLocation()
应该回到它的坐标相对父容器(在下面的例子中,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
getLocation()方法给出了组件相对于其父窗口在本例中为内容窗格的位置,因此该位置实际上可能为0.此外,在帧可见之前,您无法调用该方法。
如果你想相对于框架的位置,然后你需要使用
SwingUtilities.convertPoint(...);
+1不知道该方法,谢谢。 – Boro 2011-04-18 16:01:41
你为什么要这些信息?或者,您试图向最终用户提供哪些功能(并且不要忘记最终用户可以**看到** JTextField所在的位置,而不需要被告知)? – 2011-04-18 15:49:13