Java tutorial
//package com.java2s; /* * This file is part of WebLookAndFeel library. * * WebLookAndFeel library 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. * * WebLookAndFeel library 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 WebLookAndFeel library. If not, see <http://www.gnu.org/licenses/>. */ import java.awt.*; public class Main { /** * Makes all specified component sizes equal. * * @param components components to modify */ public static void equalizeComponentsSize(final Component... components) { final Dimension maxSize = new Dimension(0, 0); for (final Component c : components) { if (c != null) { final Dimension ps = c.getPreferredSize(); maxSize.width = Math.max(maxSize.width, ps.width); maxSize.height = Math.max(maxSize.height, ps.height); } } for (final Component c : components) { if (c != null) { c.setPreferredSize(maxSize); } } } /** * Returns maximum insets combined from the specified ones. * * @param insets1 first insets * @param insets2 second insets * @return maximum insets */ public static Insets max(final Insets insets1, final Insets insets2) { if (insets1 != null && insets2 != null) { return new Insets(Math.max(insets1.top, insets2.top), Math.max(insets1.left, insets2.left), Math.max(insets1.bottom, insets2.bottom), Math.max(insets1.right, insets2.right)); } else if (insets1 != null) { return insets1; } else if (insets2 != null) { return insets2; } else { return null; } } /** * Returns maximum dimension combined from specified components dimensions. * * @param component1 first component * @param component2 second component * @return maximum dimension */ public static Dimension max(final Component component1, final Component component2) { return max(component1.getPreferredSize(), component2.getPreferredSize()); } /** * Returns maximum dimension combined from specified components dimensions. * * @param components components * @return maximum dimension */ public static Dimension max(final Component... components) { Dimension max = components.length > 0 ? components[0].getPreferredSize() : new Dimension(0, 0); for (int i = 1; i < components.length; i++) { max = max(max, components[i].getPreferredSize()); } return max; } /** * Returns maximum dimension combined from specified ones. * * @param dimension1 first dimension * @param dimension2 second dimension * @return maximum dimension */ public static Dimension max(final Dimension dimension1, final Dimension dimension2) { if (dimension1 == null && dimension2 == null) { return null; } else if (dimension1 == null) { return dimension2; } else if (dimension2 == null) { return dimension1; } else { return new Dimension(Math.max(dimension1.width, dimension2.width), Math.max(dimension1.height, dimension2.height)); } } }