Here you can find the source of getBoundsInAncestor(Container ancestor, final Component comp, Rectangle bounds)
public static Rectangle getBoundsInAncestor(Container ancestor, final Component comp, Rectangle bounds)
//package com.java2s; /*/*from w ww . j a va 2s. c o m*/ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2011 OpenConcerto, by ILM Informatique. All rights reserved. * * The contents of this file are subject to the terms of the GNU General Public License Version 3 * only ("GPL"). You may not use this file except in compliance with the License. You can obtain a * copy of the License at http://www.gnu.org/licenses/gpl-3.0.html See the License for the specific * language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each file. */ import java.awt.Component; import java.awt.Container; import java.awt.Rectangle; public class Main { public static Rectangle getBoundsInAncestor(Container ancestor, final Component comp, Rectangle bounds) { bounds = comp.getBounds(bounds); Container parent = comp.getParent(); while (parent != null && parent != ancestor) { bounds.translate(parent.getX(), parent.getY()); parent = parent.getParent(); } return bounds; } }