也许这是一个愚蠢的问题,但我花了好几个小时来尝试。我有任何 JFrame,里面有她的组件。这个 JFrame 可以有任何布局。我的问题很简单 我有这个窗口:在图像中我使用绝对布局来了解真实位置。
我想知道按钮的位置。我正在使用 GridBagLayout,当我执行 button.getY() 或 button.getX() 时,我在 X 或 Y 中有 0 个。但是如果我使用绝对布局,我没有问题。
如果我使用 absoluteLayout 我知道我没有这个问题。但我想使用任何布局并知道框架中任何组件的绝对位置。
我真的想做一个自动完成的文本字段(就像你写搜索时的谷歌),当我在文本字段中写入时,我想在文本字段下面显示其他窗口 jframe 与巧合。
如果我知道任何文本字段的绝对位置,我就可以计算出该位置并显示新窗口。
感谢大家。
最佳答案
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));
关于java - 如何在任何布局 Java Swing 中获取任何组件的绝对位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661583/