Java JComponent Size getSize(Component c, int sizeflag)

Here you can find the source of getSize(Component c, int sizeflag)

Description

get Size

License

Open Source License

Declaration

public static Dimension getSize(Component c, int sizeflag) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright (c) 2010 BSI Business Systems Integration AG.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors://from ww w. ja  va 2s  .  c  o  m
 *     BSI Business Systems Integration AG - initial API and implementation
 ******************************************************************************/

import java.awt.Component;

import java.awt.Dimension;

import javax.swing.JLabel;

import javax.swing.text.View;

public class Main {
    public static final int MIN = 0;
    public static final int PREF = 1;
    public static final int MAX = 2;

    public static Dimension getSize(Component c, int sizeflag) {
        if (c == null) {
            return new Dimension(0, 0);
        }
        //special case due to swing bug: html labels need to know the current parent layout's size
        if (c instanceof JLabel) {
            View v = (View) ((JLabel) c).getClientProperty(javax.swing.plaf.basic.BasicHTML.propertyKey);
            if (v != null) {
                switch (sizeflag) {
                case MIN: {
                    Dimension d = new Dimension(c.getPreferredSize());
                    d.width = 1;
                    return d;
                }
                case PREF: {
                    Dimension d = new Dimension(c.getPreferredSize());
                    return d;
                }
                case MAX: {
                    Dimension d = new Dimension(10240, 10240);
                    d.width = 1;
                    return d;
                }
                }
            }
        }
        //
        switch (sizeflag) {
        case MIN: {
            return new Dimension(c.getMinimumSize());
        }
        case PREF: {
            return new Dimension(c.getPreferredSize());
        }
        case MAX: {
            return new Dimension(c.getMaximumSize());
        }
        }
        return new Dimension(c.getPreferredSize());
    }
}

Related

  1. getPreferredSize(Window window)
  2. getPreferredSizeComponent(JComponent component)
  3. getScreenSize()
  4. getScreenSize(Component invoker)
  5. getSize(byte[] data)
  6. getValidatedSize(Component c, int sizeflag)
  7. getViewableScreenSize()
  8. getVisibleSizeInViewport(Component c)
  9. getWindowSize(JComponent start)