Java JComponent Size equalizeSize(final JComponent... components)

Here you can find the source of equalizeSize(final JComponent... components)

Description

Resizes the given components making them equal in size.

License

Open Source License

Declaration

public static void equalizeSize(final JComponent... components) 

Method Source Code

//package com.java2s;
/*/*from  ww  w.  j  a v  a2 s  .c o m*/
 * #%L
 * Cytoscape Swing Utility API (swing-util-api)
 * $Id:$
 * $HeadURL:$
 * %%
 * Copyright (C) 2006 - 2016 The Cytoscape Consortium
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as 
 * published by the Free Software Foundation, either version 2.1 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 Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public 
 * License along with this program.  If not, see
 * <http://www.gnu.org/licensses/lgpl-2.1.html>.
 * #L%
 */

import java.awt.Dimension;

import javax.swing.JComponent;

public class Main {
    /**
     * Resizes the given components making them equal in size.
     */
    public static void equalizeSize(final JComponent... components) {
        if (components == null || components.length == 0)
            return;

        final Dimension prefSize = components[0].getPreferredSize();
        final Dimension maxSize = components[0].getMaximumSize();

        for (JComponent c : components) {
            ensureSize(prefSize, c.getPreferredSize());
            ensureSize(maxSize, c.getMaximumSize());
        }

        for (JComponent c : components) {
            c.setPreferredSize(prefSize);
            c.setMaximumSize(maxSize);
        }
    }

    /**
     * Enlarges, if necessary, the given current size to cover the given other size.
     * <p>
     * If both the width and height of <code>currentSize</code> are larger than the width and height of
     * <code>minSize</code>, respectively, calling this method has no effect.
     * </p>
     * 
     * @param currentSize Size to be enlarged if necessary.
     * @param minSize Minimal required size of <code>currentSize</code>.
     */
    private static void ensureSize(final Dimension currentSize, final Dimension minSize) {
        if (currentSize.height < minSize.height)
            currentSize.height = minSize.height;

        if (currentSize.width < minSize.width)
            currentSize.width = minSize.width;
    }
}

Related

  1. createDoubleSpinner(final double value, final double rangeMinimum, final double rangeMaximum, final double stepSize, final double bigStepSize, final String formatPattern)
  2. differsSize(AttributeSet style, AttributeSet base)
  3. doSetSize(final Component component, final int width, final int height)
  4. doSetSizeInEDT(final Component component, final int width, final int height)
  5. emphasizeToolTip()
  6. equalizeSizes(JComponent[] components)
  7. evenSizes(JComponent[] components)
  8. findCenterBounds(Dimension componentSize)
  9. fixSize(JComponent c, Dimension d)