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

📄 j_diagonallayout.java

📁 一个十分好的java基础学习的课件
💻 JAVA
字号:
// ////////////////////////////////////////////////////////
// 
// J_DiagonalLayout.java
// 

// ////////////////////////////////////////////////////////

import java.awt.*;

public class J_DiagonalLayout implements LayoutManager
{

    public void addLayoutComponent(String name, Component comp)
    {
    } // End of method: addLayoutComponent

    public void removeLayoutComponent(Component comp)
    {
    } // End of method: removeLayoutComponent

    public Dimension preferredLayoutSize(Container parent)
    {
        Dimension d  = null;
        Insets    s  = parent.getInsets( ); // the size of parent's border
        Dimension dp = new Dimension(s.left + s.right, s.top + s.bottom);
        Component c;
        int i;
        int n = parent.getComponentCount( );

        for (i = 0; i < n; i++)
        {
            c = parent.getComponent(i);
            if (c.isVisible( ))
            {
                d = c.getPreferredSize( );

                dp.width += d.width;
                dp.height+= d.height;
            } // End of if
        } // End of loop: for

        return dp;
    } // End of method: preferredLayoutSize

    public Dimension minimumLayoutSize(Container parent)
    {
        Dimension d  = null;
        Insets    s  = parent.getInsets( ); // the size of parent's border
        Dimension dp = new Dimension(0, 0);
        Component c;
        int i;
        int n = parent.getComponentCount( );

        for (i = 0; i < n; i++)
        {
            c = parent.getComponent(i);
            if (c.isVisible( ))
            {
                d = c.getPreferredSize( );
                if (d.width> dp.width)
                    dp.width= d.width;
                if (d.height> dp.height)
                    dp.height= d.height;
            } // End of if
        } // End of loop: for
        dp.width += (s.left + s.right);
        dp.height+= (s.top + s.bottom);

        return dp;
    } // End of method: minimumLayoutSize

    public void layoutContainer(Container parent)
    { // Invoked when "parent" is first displayed or its size changes.
        int         i;
        int         n = parent.getComponentCount( );
        Component   c;
        Insets      s   = parent.getInsets( );           // Size of border
        Dimension   d;
        Dimension   dp  = parent.getSize( );             // Size of container
        Dimension   dr  = preferredLayoutSize(parent);  // Size of components
        Dimension   dc  = new Dimension(s.left, s.top); // Current position.
        Dimension   dg  = new Dimension(dp.width-dr.width, dp.height-dr.height);
        if (n>1)
        {// Calculate the size of gaps
            dg.width  /= (n-1);
            dg.height /= (n-1);
        }
        
        for (i = 0 ; i < n ; i++)
        {
            c = parent.getComponent(i);
            if (c.isVisible( ))
            {
                d = c.getPreferredSize( );
                c.setBounds(dc.width, dc.height, d.width, d.height); // dc : position; d: size
                dc.width += (dg.width+d.width);
                dc.height+= (dg.height+d.height);
            }
        } // End of loop: for
    } // End of method: layoutContainer

} // End of class: J_DiagonalLayout

⌨️ 快捷键说明

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