Java Screen Center setSizeAndCenterOnSreen(Window window, double widthFactor, double heightFactor)

Here you can find the source of setSizeAndCenterOnSreen(Window window, double widthFactor, double heightFactor)

Description

Sets the size of the window to a width and height factor of the screen size, and centers it on the screen.

License

Open Source License

Parameter

Parameter Description
window The window to set the size.
widthFactor The width factor of the screen size.
heightFactor The height factor of the screen size.

Declaration

public static void setSizeAndCenterOnSreen(Window window, double widthFactor, double heightFactor) 

Method Source Code

//package com.java2s;
/*//from   ww  w . j a v  a2  s.co  m
 * Copyright (C) 2015 Miquel Sas
 * 
 * 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 3 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, see
 * <http://www.gnu.org/licenses/>.
 */

import java.awt.Dimension;

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.Window;

public class Main {
    /**
     * Sets the size of the window to a width and height factor of the screen size, and centers it on the screen.
     * 
     * @param window The window to set the size.
     * @param widthFactor The width factor of the screen size.
     * @param heightFactor The height factor of the screen size.
     */
    public static void setSizeAndCenterOnSreen(Window window, double widthFactor, double heightFactor) {
        setSize(window, widthFactor, heightFactor);
        centerOnScreen(window);
    }

    /**
     * Sets the size of the window to a width and height factor of the screen size.
     * 
     * @param window The window to set the size.
     * @param widthFactor The width factor of the screen size.
     * @param heightFactor The height factor of the screen size.
     */
    public static void setSize(Window window, double widthFactor, double heightFactor) {
        Dimension screenSize = getScreenSize(window);
        int width = (int) (screenSize.getWidth() * widthFactor);
        int height = (int) (screenSize.getHeight() * heightFactor);
        window.setSize(width, height);
    }

    /**
     * Centers the window on the screen.
     * 
     * @param window The window to center.
     * @return The location or top-left corner.
     */
    public static Point centerOnScreen(Window window) {
        Dimension screenSize = getScreenSize(window);
        Dimension windowSize = window.getSize();
        int x = (int) ((screenSize.getWidth() - windowSize.getWidth()) / 2);
        int y = (int) ((screenSize.getHeight() - windowSize.getHeight()) / 2);
        window.setLocation(x, y);
        return window.getLocation();
    }

    /**
     * Returns the size of the screen containing the argument window or the primary screen if current window is not
     * selected.
     * 
     * @param window The window.
     * @return The screen size.
     */
    public static Dimension getScreenSize(Window window) {
        return getGraphicsDevice(window).getConfigurations()[0].getBounds().getSize();
    }

    /**
     * Returns the graphics device that should apply to a window.
     * 
     * @param window The window.
     * @return The graphics device.
     */
    public static GraphicsDevice getGraphicsDevice(Window window) {
        if (window != null) {
            return window.getGraphicsConfiguration().getDevice();
        }
        return GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    }
}

Related

  1. setCenterPosition(final Frame frame)
  2. setComponentLocationOnCenter(Component component)
  3. setLocationCentral(final Component component)
  4. setLocationOnScreenToCenteredWithin(java.awt.Window window, java.awt.Component root)
  5. setLocationToCenter(Window window)
  6. setupImage(BufferedImage image, int centerPos, int size, int maxSizePercentage)
  7. setWindowToCenterOfScreen(Window frm)
  8. setWindowToScreenCenter(Window window)