Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * 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.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.Window;

public class Main {
    /**
     * Locates a dimension on the screen being the left space the width factor of difference between the screen size and
     * the dimension. A value of 0 moves the dimension to the left, while a value of 1 moves the dimension to the right.
     * The same applies to the height.
     * 
     * @param window The window.
     * @param factorWidth Width factor.
     * @param factorHeight Height factor.
     * @return The top-left corner point.
     */
    public static Point moveWindowOnScreen(Window window, double factorWidth, double factorHeight) {
        Dimension sz = window.getSize();
        Dimension szScreen = getScreenSize(window);
        Point pt = getScreenPosition(window);
        if (szScreen.width > sz.width) {
            pt.x = pt.x + (int) ((szScreen.width - sz.width) * factorWidth);
            pt.y = pt.y + (int) ((szScreen.height - sz.height) * factorHeight);
        }
        return pt;
    }

    /**
     * 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 position of the screen containing the argument window or the primary screen if current window is not
     * selected.
     * 
     * @param window The window.
     * @return The location point.
     */
    public static Point getScreenPosition(Window window) {
        GraphicsDevice graphicsDevice = getGraphicsDevice(window);
        GraphicsConfiguration[] configurations = graphicsDevice.getConfigurations();
        return configurations[0].getBounds().getLocation();
    }

    /**
     * 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();
    }
}