Example usage for java.awt Toolkit getScreenInsets

List of usage examples for java.awt Toolkit getScreenInsets

Introduction

In this page you can find the example usage for java.awt Toolkit getScreenInsets.

Prototype

public Insets getScreenInsets(GraphicsConfiguration gc) throws HeadlessException 

Source Link

Document

Gets the insets of the screen.

Usage

From source file:Utilities.java

/**
 * Returns the usable area of the screen where applications can place its
 * windows.  The method subtracts from the screen the area of taskbars,
 * system menus and the like.//ww w  . j  a v  a2  s .  com
 *
 * @param gconf the GraphicsConfiguration of the monitor
 * @return the rectangle of the screen where one can place windows
 *
 * @since 2.5
 */
public static Rectangle getUsableScreenBounds(GraphicsConfiguration gconf) {
    if (gconf == null) {
        gconf = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()
                .getDefaultConfiguration();
    }

    Rectangle bounds = new Rectangle(gconf.getBounds());

    String str;

    str = System.getProperty("netbeans.screen.insets"); // NOI18N

    if (str != null) {
        StringTokenizer st = new StringTokenizer(str, ", "); // NOI18N

        if (st.countTokens() == 4) {
            try {
                bounds.y = Integer.parseInt(st.nextToken());
                bounds.x = Integer.parseInt(st.nextToken());
                bounds.height -= (bounds.y + Integer.parseInt(st.nextToken()));
                bounds.width -= (bounds.x + Integer.parseInt(st.nextToken()));
            } catch (NumberFormatException ex) {
                Logger.getAnonymousLogger().log(Level.WARNING, null, ex);
            }
        }

        return bounds;
    }

    str = System.getProperty("netbeans.taskbar.height"); // NOI18N

    if (str != null) {
        bounds.height -= Integer.getInteger(str, 0).intValue();

        return bounds;
    }

    try {
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Insets insets = toolkit.getScreenInsets(gconf);
        bounds.y += insets.top;
        bounds.x += insets.left;
        bounds.height -= (insets.top + insets.bottom);
        bounds.width -= (insets.left + insets.right);
    } catch (Exception ex) {
        Logger.getAnonymousLogger().log(Level.WARNING, null, ex);
    }

    return bounds;
}