Java Window arrangeWithin(final Shape shapeToArrange, final Rectangle window, final int arrangement, Insets padding)

Here you can find the source of arrangeWithin(final Shape shapeToArrange, final Rectangle window, final int arrangement, Insets padding)

Description

arrange Within

License

Apache License

Declaration

public static Point arrangeWithin(final Shape shapeToArrange, final Rectangle window, final int arrangement,
            Insets padding) 

Method Source Code

//package com.java2s;
/**//from   www .  j  ava2 s  .  c  o m
 * A collection of small utilities for component management and reflection handling.
 * <p/>
 * <hr/> Copyright 2006-2012 Torsten Heup
 * <p/>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * <p/>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p/>
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */

import javax.swing.*;
import java.awt.*;

public class Main {
    public static Point arrangeWithin(final Shape shapeToArrange, final Rectangle window, final int arrangement,
            final int padding) {
        return arrangeWithin(shapeToArrange, window, arrangement, new Insets(padding, padding, padding, padding));
    }

    public static Point arrangeWithin(final Shape shapeToArrange, final Rectangle window, final int arrangement,
            Insets padding) {
        if (shapeToArrange == null)
            throw new IllegalArgumentException("Parameter 'shapeToArrange' must not be null!");
        if (window == null)
            throw new IllegalArgumentException("Parameter 'window' must not be null!");
        if (padding == null)
            padding = new Insets(0, 0, 0, 0);

        final Rectangle bounds = shapeToArrange.getBounds();

        switch (arrangement) {
        case SwingConstants.NORTH:
            return new Point((window.width - bounds.width) / 2, padding.top);
        case SwingConstants.NORTH_EAST:
            return new Point(window.width - padding.right, padding.top);
        case SwingConstants.EAST:
            return new Point(window.width - padding.right, (window.height - bounds.height) / 2);
        case SwingConstants.SOUTH_EAST:
            return new Point(window.width - padding.right, window.height - padding.bottom);
        case SwingConstants.SOUTH:
            return new Point((window.width - bounds.width) / 2, window.height - padding.bottom);
        case SwingConstants.SOUTH_WEST:
            return new Point(padding.left, window.height - padding.bottom);
        case SwingConstants.WEST:
            return new Point(padding.left, (window.height - bounds.height) / 2);
        case SwingConstants.NORTH_WEST:
            return new Point(padding.left, padding.top);
        case SwingConstants.CENTER:
            return new Point((window.width - bounds.width) / 2, (window.height - bounds.height) / 2);
        default:
            throw new IllegalArgumentException("Illegal arrangement key, expected one of the SwingConstants keys");
        }
    }
}

Related

  1. buildWindow(Float opacity)
  2. cascade(Window[] windows, Rectangle dBounds, int separation)
  3. closeByESC(final Window window, JPanel panel)
  4. createWindow(String name, int width, int height, boolean guiOn)