也许这是一个愚蠢的问题,但是我失去了几个小时的尝试。我有任何内部组件的JFrame。这个JFrame可以有任何布局。我的问题很简单 我有这个窗口:在图像中我使用绝对布局来了解真实位置。
我想知道按钮的位置。我正在使用GridBagLayout,当我执行button.getY()或button.getX()时,我有0,在X或Y.但如果我使用绝对布局,我没有问题。
如果我使用absoluteLayout,我知道我没有这个问题。但我想使用任何布局并知道框架中任何组件的绝对位置。
我真的想做一个自动完成的textField(比如google,当你写入搜索时),当我在TextField中写字时,我想在文本字段下面显示其他窗口jframe的巧合。
如果我知道任何文本的绝对位置,我可以计算位置并显示新窗口。
感谢所有人。
答案 0 :(得分:8)
SwingUtilities.convertPoint()
方法之一应该做你想要的。以下示例打印java.awt.Point[x=54,y=22]
。
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JLabel("Test"), BorderLayout.WEST);
JButton b = new JButton("Test");
f.add(b);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
System.out.println(SwingUtilities.convertPoint(b, b.getX(), b.getY(), f));
答案 1 :(得分:0)
我认为本教程对你的要求有一个答案...... http://javadevwannabe.blogspot.gr/2012/02/using-absolute-positioning.html