Java JFrame Center centerOnScreen(JFrame frame, int screenID)

Here you can find the source of centerOnScreen(JFrame frame, int screenID)

Description

Centers a frame on screen.

License

Open Source License

Parameter

Parameter Description
frame the frame to center
screenID the screen id

Declaration

public static void centerOnScreen(JFrame frame, int screenID) 

Method Source Code

//package com.java2s;
/* //from www.j a v a2 s .com
 * VGraphicsUtil.java
 * 
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 2009?2012 Steinbeis Forschungszentrum (STZ ?lbronn),
 * Copyright (c) 2006?2012 by Michael Hoffer
 * 
 * This file is part of Visual Reflection Library (VRL).
 *
 * VRL is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation.
 * 
 * see: http://opensource.org/licenses/LGPL-3.0
 *      file://path/to/VRL/src/eu/mihosoft/vrl/resources/license/lgplv3.txt
 *
 * VRL 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 Lesser General Public License for more details.
 *
 * This version of VRL includes copyright notice and attribution requirements.
 * According to the LGPL this information must be displayed even if you modify
 * the source code of VRL. Neither the VRL Canvas attribution icon nor any
 * copyright statement/attribution may be removed.
 *
 * Attribution Requirements:
 *
 * If you create derived work you must do three things regarding copyright
 * notice and author attribution.
 *
 * First, the following text must be displayed on the Canvas:
 * "based on VRL source code". In this case the VRL canvas icon must be removed.
 * 
 * Second, the copyright notice must remain. It must be reproduced in any
 * program that uses VRL.
 *
 * Third, add an additional notice, stating that you modified VRL. In addition
 * you must cite the publications listed below. A suitable notice might read
 * "VRL source code modified by YourName 2012".
 * 
 * Note, that these requirements are in full accordance with the LGPL v3
 * (see 7. Additional Terms, b).
 *
 * Publications:
 *
 * M. Hoffer, C.Poliwoda, G.Wittum. Visual Reflection Library -
 * A Framework for Declarative GUI Programming on the Java Platform.
 * Computing and Visualization in Science, 2011, in press.
 */

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;

import javax.swing.JFrame;

public class Main {
    /**
     * Centers a frame on screen.
     *
     * @param frame the frame to center
     * @param screenID the screen id
     */
    public static void centerOnScreen(JFrame frame, int screenID) {
        Rectangle screenBounds = getScreenBounds(screenID);

        int x = screenBounds.x + screenBounds.width / 2 - frame.getWidth()
                / 2;
        int y = screenBounds.y + screenBounds.height / 2
                - frame.getHeight() / 2;

        frame.setLocation(x, y);
    }

    /**
     * Returns the bounds of the screen in device coordinates.
     *
     * @param screenID the screen id
     * @return the screen bounds
     */
    public static Rectangle getScreenBounds(int screenID) {
        GraphicsEnvironment ge = GraphicsEnvironment
                .getLocalGraphicsEnvironment();
        GraphicsDevice[] gds = ge.getScreenDevices();

        GraphicsDevice gd = gds[screenID];

        return gd.getDefaultConfiguration().getBounds();
    }
}

Related

  1. centerFrameTo(final JFrame frameToCenter, final Dimension orientDim)
  2. centerJFrame(JFrame frame)
  3. centerOnFrame(JDialog dialog, JFrame frame)
  4. centerOnFrame(JFrame frame, Component comp)
  5. centerOnParent(JDialog child, JFrame parent)
  6. centerPoint(int width, int height, JFrame frame)
  7. centerPosition(JFrame invokerFrame, Window w, int width, int height)
  8. centerWindow(JFrame frame)
  9. centerWindow(JFrame frame)