Here you can find the source of getLocalScreenSize(Component invoker)
Parameter | Description |
---|---|
invoker | the invoker component |
public static Dimension getLocalScreenSize(Component invoker)
//package com.java2s; import javax.swing.*; import java.awt.*; public class Main { /**//from w w w .ja v a2 s. c om * Gets the screen size. In JDK1.4+, the returned size will exclude task bar area on Windows OS. * * @param invoker the invoker component * @return the screen size. */ public static Dimension getLocalScreenSize(Component invoker) { // ensureScreenBounds(); // jdk1.4 only if (invoker != null && !(invoker instanceof JApplet) && invoker.getGraphicsConfiguration() != null) { // to handle multi-display case GraphicsConfiguration gc = invoker.getGraphicsConfiguration(); Rectangle bounds = gc.getBounds(); Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(gc); bounds.width -= insets.left + insets.right; bounds.height -= insets.top + insets.bottom; return bounds.getSize(); } else { return getScreenSize(invoker); } } /** * Gets the screen size. In JDK1.4+, the returned size will exclude task bar area on Windows OS. * * @param invoker the invoker component * @return the screen size. */ public static Dimension getScreenSize(Component invoker) { // to handle multi-display case Dimension screenSize = getScreenBounds().getSize(); // jdk1.4 only if (invoker != null && !(invoker instanceof JApplet) && invoker.getGraphicsConfiguration() != null) { Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(invoker.getGraphicsConfiguration()); screenSize.width -= insets.left + insets.right; screenSize.height -= insets.top + insets.bottom; } return screenSize; } /** * Gets the screen bounds. In JDK1.4+, the returned bounds will exclude task bar area on Windows OS. If the invoker * is null, the whole screen bounds including all display devices will be returned. If the invoker is not null and * the useInvokeDevice flag is true, the screen of the display device for the invoker will be returned. * * @param invoker the invoker component * @param useInvokerDevice the flag to return invoker device or not * @return the screen bounds. */ public static Rectangle getScreenBounds(Component invoker, boolean useInvokerDevice) { // to handle multi-display case Rectangle bounds = (!useInvokerDevice || invoker == null || invoker.getGraphicsConfiguration() == null) ? (Rectangle) getScreenBounds().clone() : invoker.getGraphicsConfiguration().getBounds(); // TODO // jdk1.4 only if (invoker != null && !(invoker instanceof JApplet) && invoker.getGraphicsConfiguration() != null) { Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(invoker.getGraphicsConfiguration()); bounds.x += insets.left; bounds.y += insets.top; bounds.width -= insets.left + insets.right; bounds.height -= insets.top + insets.bottom; } return bounds; } /** * Gets the screen bounds. In JDK1.4+, the returned bounds will exclude task bar area on Windows OS. * <p/> * By default, it will not use invoker graphic device automatically. * * @param invoker the invoker component * @return the screen bounds. * @see #getScreenBounds(java.awt.Component, boolean) */ public static Rectangle getScreenBounds(Component invoker) { return getScreenBounds(invoker, false); } private static Rectangle getScreenBounds() { Rectangle SCREEN_BOUNDS = new Rectangle(); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScreenDevices(); for (GraphicsDevice gd : gs) { GraphicsConfiguration gc = gd.getDefaultConfiguration(); SCREEN_BOUNDS = SCREEN_BOUNDS.union(gc.getBounds()); } return SCREEN_BOUNDS; } }