⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 absolutelayout.java

📁 用Java写的面相对象的数据库管理系统
💻 JAVA
字号:
//$Id: AbsoluteLayout.java,v 1.2 2000/10/28 16:55:18 daniela Exp $//from the NetBeans redist directorypackage org.ozoneDB.core;import java.awt.*;/** * AbsoluteLayout is a LayoutManager that works as a replacement * for "null" layout to allow placement of components in absolute * positions. *  *  * @version 1.01, Aug 19, 1998 ($Revision: 1.2 $) * @author  Ian Formanek (modified softwarebuero m&b */public class AbsoluteLayout implements LayoutManager2, java.io.Serializable {        /** A mapping <Component, AbsoluteConstraints> */    protected java.util.Hashtable constraints = new java.util.Hashtable();        /** urspruengliche groesse des umgebenden containers*/    public Dimension bounds;        /** generated Serialized Version UID */    final static long serialVersionUID = -1919857869177070440L;            /**     * Adds the specified component with the specified name to     * the layout.     * @param name the component name     * @param comp the component to be added     */    public void addLayoutComponent( String name, Component comp ) {        throw new IllegalArgumentException();    }             /**     * Removes the specified component from the layout.     * @param comp the component to be removed     */    public void removeLayoutComponent( Component comp ) {        constraints.remove( comp );    }             /**     * Calculates the preferred dimension for the specified     * panel given the components in the specified parent container.     * @param parent the component to be laid out     *     * @see #minimumLayoutSize     */    public Dimension preferredLayoutSize( Container parent ) {        int maxWidth = 0;        int maxHeight = 0;        for (java.util.Enumeration e = constraints.keys(); e.hasMoreElements();) {            Component comp = (Component)e.nextElement();            AbsoluteConstraints ac = (AbsoluteConstraints)constraints.get( comp );            Dimension size = comp.getPreferredSize();                        int width = ac.getWidth() == -1 ? size.width : ac.getWidth();            int height = ac.getHeight() == -1 ? size.height : ac.getHeight();                        if (ac.x + width > maxWidth) {                maxWidth = ac.x + width;            }             if (ac.y + height > maxHeight) {                maxHeight = ac.y + height;            }         }         return new Dimension( maxWidth, maxHeight );    }             /**     * Calculates the minimum dimension for the specified     * panel given the components in the specified parent container.     * @param parent the component to be laid out     * @see #preferredLayoutSize     */    public Dimension minimumLayoutSize( Container parent ) {        int maxWidth = 0;        int maxHeight = 0;        for (java.util.Enumeration e = constraints.keys(); e.hasMoreElements();) {            Component comp = (Component)e.nextElement();            AbsoluteConstraints ac = (AbsoluteConstraints)constraints.get( comp );                        Dimension size = comp.getMinimumSize();                        int width = ac.getWidth() == -1 ? size.width : ac.getWidth();            int height = ac.getHeight() == -1 ? size.height : ac.getHeight();                        if (ac.x + width > maxWidth) {                maxWidth = ac.x + width;            }             if (ac.y + height > maxHeight) {                maxHeight = ac.y + height;            }         }         return new Dimension( maxWidth, maxHeight );    }             /**     * Sets the original size of the parent container. Needs not     * to be called in any case.     */    public void realizeSize( Dimension bounds ) {        bounds = new Dimension( bounds );    }             /**     * Lays out the container in the specified panel.     * @param parent the component which needs to be laid out     */    public void layoutContainer( Container parent ) {        Dimension parentSize = parent.getSize();        if (bounds == null) {            bounds = new Dimension( parentSize );        }                 for (java.util.Enumeration e = constraints.keys(); e.hasMoreElements();) {            Component comp = (Component)e.nextElement();            AbsoluteConstraints ac = (AbsoluteConstraints)constraints.get( comp );            Dimension size = comp.getPreferredSize();                        int x = ac.x;            int y = ac.y;            int width = ac.getWidth() == -1 ? size.width : ac.getWidth();            int height = ac.getHeight() == -1 ? size.height : ac.getHeight();                        if ((ac.policy & AbsoluteConstraints.X_PROP) != 0) {                x = (int)((double)ac.x / (double)bounds.width * (double)parentSize.width);            }             if ((ac.policy & AbsoluteConstraints.Y_PROP) != 0) {                y = (int)((double)ac.y / (double)bounds.height * (double)parentSize.height);            }             if ((ac.policy & AbsoluteConstraints.X_ABS) != 0) {                x = (parentSize.width - (bounds.width - ac.x));            }             if ((ac.policy & AbsoluteConstraints.Y_ABS) != 0) {                y = (parentSize.height - (bounds.height - ac.y));            }                         if ((ac.policy & AbsoluteConstraints.X2_PROP) != 0) {                width = ((int)((double)(ac.x + width) / (double)bounds.width * (double)parentSize.width) - x);            }             if ((ac.policy & AbsoluteConstraints.Y2_PROP) != 0) {                height = ((int)((double)(ac.y + height) / (double)bounds.height * (double)parentSize.height) - y);            }             if ((ac.policy & AbsoluteConstraints.X2_ABS) != 0) {                int x2 = bounds.width - ac.x + width;                width = (parentSize.width - x - x2);            }             if ((ac.policy & AbsoluteConstraints.Y2_ABS) != 0) {                int y2 = bounds.height - ac.y + height;                height = (parentSize.height - y - y2);            }                         comp.setBounds( x, y, width, height );        }     }             /**     * Adds the specified component to the layout, using the specified     * constraint object.     * @param comp the component to be added     * @param constr  where/how the component is added to the layout.     */    public void addLayoutComponent( Component comp, Object constr ) {        if (!(constr instanceof AbsoluteConstraints)) {            throw new IllegalArgumentException();        }         constraints.put( comp, constr );    }             /**     * Returns the maximum size of this component.     * @see java.awt.Component#getMinimumSize()     * @see java.awt.Component#getPreferredSize()     * @see LayoutManager     */    public Dimension maximumLayoutSize( Container target ) {        return new Dimension( Integer.MAX_VALUE, Integer.MAX_VALUE );    }             /**     * Returns the alignment along the x axis.  This specifies how     * the component would like to be aligned relative to other     * components.  The value should be a number between 0 and 1     * where 0 represents alignment along the origin, 1 is aligned     * the furthest away from the origin, 0.5 is centered, etc.     */    public float getLayoutAlignmentX( Container target ) {        return 0;    }             /**     * Returns the alignment along the y axis.  This specifies how     * the component would like to be aligned relative to other     * components.  The value should be a number between 0 and 1     * where 0 represents alignment along the origin, 1 is aligned     * the furthest away from the origin, 0.5 is centered, etc.     */    public float getLayoutAlignmentY( Container target ) {        return 0;    }             /**     * Invalidates the layout, indicating that if the layout manager     * has cached information it should be discarded.     */    public void invalidateLayout( Container target ) {    } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -