java - 如何获得 Swing 组件的坐标,而不考虑其父组件?

标签 java swing components coordinates

我正在尝试获取组件的坐标,例如标签。我尝试了 getBounds 和 getLocation,但是如果标签在 2 个或更多面板上,它们不会给出准确的坐标。除了 getLocationOnScreen 之外,有没有办法能够获取准确的组件坐标,即使它们位于多个面板上?

最佳答案

如果你想要它相对于 JFrame,那么你必须做这样的事情:

public static Point getPositionRelativeTo(Component root, Component comp) {
    if (comp.equals(root)) { return new Point(0,0); }
    Point pos = comp.getLocation();
    Point parentOff = getPositionRelativeTo(root, comp.getParent());
    return new Point(pos.x + parentOff.x, pos.y + parentOff.y);
}

或者您可以只使用内置解决方案 SwingUtilities.convertPoint(comp, 0, 0, root)

关于java - 如何获得 Swing 组件的坐标,而不考虑其父组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070848/

相关文章:

java - R: 无法安装 rJava;什么是 r-api-3.4?

java - MigLayout 行高和更改字体大小

javascript - 如何获取antd的refs antd componement Select值?

android - 将自定义组件小部件动态添加到 Android 中的布局

java - 当我提交大于1M的json字符串时,如何解决Spring MVC中的org.springframework.web.bind.MissingServletRequestParameterException?

java - 对字符串使用静态变量

Java泛型不可能赋值?

java - 将按钮放置在图像顶部

java - 按下按钮时图像更改Java

javascript - react 中组件之间通信的正确方式是什么?为什么不到处使用 refs 呢?