Java tutorial
//package com.java2s; /* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org ) * * Any parts of this program derived from other projects, or contributed * by third-party developers are copyrighted by their respective authors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ import java.awt.Dimension; import java.awt.Point; import java.awt.Rectangle; import java.awt.Window; public class Main { public static void setWindowLocationRelativeTo(Window window, Window relativeWindow) { Rectangle windowBounds = window.getBounds(); Dimension rwSize = relativeWindow.getSize(); Point rwLoc = relativeWindow.getLocation(); int dx = rwLoc.x + ((rwSize.width - windowBounds.width) >> 1); int dy = rwLoc.y + ((rwSize.height - windowBounds.height) >> 1); Dimension ss = window.getToolkit().getScreenSize(); if (dy + windowBounds.height > ss.height) { dy = ss.height - windowBounds.height; dx = rwLoc.x < (ss.width >> 1) ? rwLoc.x + rwSize.width : rwLoc.x - windowBounds.width; } if (dx + windowBounds.width > ss.width) { dx = ss.width - windowBounds.width; } if (dx < 0) { dx = 0; } if (dy < 0) { dy = 0; } window.setLocation(dx, dy); } }