亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcblayout.java

?? 水晶 ? ?  報表 ? ? ? 源碼
?? JAVA
字號:
/* ===================================================
 * JCommon : a free general purpose Java class library
 * ===================================================
 *
 * Project Info:  http://www.jfree.org/jcommon/index.html
 * Project Lead:  David Gilbert (david.gilbert@object-refinery.com);
 *
 * (C) Copyright 2000-2003, by Object Refinery Limited and Contributors.
 *
 * This library 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 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 Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * --------------
 * LCBLayout.java
 * --------------
 * (C) Copyright 2000-2003, by Object Refinery Limited.
 *
 * Original Author:  David Gilbert (for Object Refinery Limited);
 * Contributor(s):   -;
 *
 * $Id: LCBLayout.java,v 1.3 2003/06/12 16:54:36 mungady Exp $
 *
 * Changes (from 26-Oct-2001)
 * --------------------------
 * 26-Oct-2001 : Changed package to com.jrefinery.layout.* (DG);
 * 10-Oct-2002 : Fixed errors reported by Checkstyle (DG);
 */

package org.jfree.layout;

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.io.Serializable;

/**
 * Specialised layout manager for a grid of components.
 *
 * @author David Gilbert
 */
public class LCBLayout implements LayoutManager, Serializable {

    /** A constant for the number of columns in the layout. */
    private static final int COLUMNS = 3;

    /** Tracks the column widths. */
    private int[] colWidth;

    /** Tracks the row heights. */
    private int[] rowHeight;

    /** The gap between each label and component. */
    private int labelGap;

    /** The gap between each component and button. */
    private int buttonGap;

    /** The gap between rows. */
    private int vGap;

    /**
     * Creates a new LCBLayout with the specified maximum number of rows.
     *
     * @param maxrows  the maximum number of rows.
     */
    public LCBLayout(int maxrows) {
        this.labelGap = 10;
        this.buttonGap = 6;
        this.vGap = 2;
        this.colWidth = new int[COLUMNS];
        this.rowHeight = new int[maxrows];
    }

    /**
     * Returns the preferred size using this layout manager.
     *
     * @param parent  the parent.
     *
     * @return the preferred size using this layout manager.
    */
    public Dimension preferredLayoutSize(Container parent) {

        synchronized (parent.getTreeLock()) {
            Insets insets = parent.getInsets();
            int ncomponents = parent.getComponentCount();
            int nrows = ncomponents / COLUMNS;
            for (int c = 0; c < COLUMNS; c++) {
                for (int r = 0; r < nrows; r++) {
                    Component component = parent.getComponent(r * COLUMNS + c);
                    Dimension d = component.getPreferredSize();
                    if (colWidth[c] < d.width) {
                        colWidth[c] = d.width;
                    }
                    if (rowHeight[r] < d.height) {
                        rowHeight[r] = d.height;
                    }
                }
            }
            int totalHeight = vGap * (nrows - 1);
            for (int r = 0; r < nrows; r++) {
                totalHeight = totalHeight + rowHeight[r];
            }
            int totalWidth = colWidth[0] + labelGap + colWidth[1] + buttonGap + colWidth[2];
            return new Dimension(insets.left + insets.right + totalWidth + labelGap + buttonGap,
                                 insets.top + insets.bottom + totalHeight + vGap);
        }

    }

    /**
     * Returns the minimum size using this layout manager.
     *
     * @param parent  the parent.
     *
     * @return the minimum size using this layout manager.
     */
    public Dimension minimumLayoutSize(Container parent) {

        synchronized (parent.getTreeLock()) {
            Insets insets = parent.getInsets();
            int ncomponents = parent.getComponentCount();
            int nrows = ncomponents / COLUMNS;
            for (int c = 0; c < COLUMNS; c++) {
                for (int r = 0; r < nrows; r++) {
                    Component component = parent.getComponent(r * COLUMNS + c);
                    Dimension d = component.getMinimumSize();
                    if (colWidth[c] < d.width) {
                        colWidth[c] = d.width;
                    }
                    if (rowHeight[r] < d.height) {
                        rowHeight[r] = d.height;
                    }
                }
            }
            int totalHeight = vGap * (nrows - 1);
            for (int r = 0; r < nrows; r++) {
                totalHeight = totalHeight + rowHeight[r];
            }
            int totalWidth = colWidth[0] + labelGap + colWidth[1] + buttonGap + colWidth[2];
            return new Dimension(insets.left + insets.right + totalWidth + labelGap + buttonGap,
                                 insets.top + insets.bottom + totalHeight + vGap);
        }

    }

    /**
     * Lays out the components.
     *
     * @param parent  the parent.
     */
    public void layoutContainer(Container parent) {

        synchronized (parent.getTreeLock()) {
            Insets insets = parent.getInsets();
            int ncomponents = parent.getComponentCount();
            int nrows = ncomponents / COLUMNS;
            for (int c = 0; c < COLUMNS; c++) {
                for (int r = 0; r < nrows; r++) {
                    Component component = parent.getComponent(r * COLUMNS + c);
                    Dimension d = component.getPreferredSize();
                    if (colWidth[c] < d.width) {
                        colWidth[c] = d.width;
                    }
                    if (rowHeight[r] < d.height) {
                        rowHeight[r] = d.height;
                    }
                }
            }
            int totalHeight = vGap * (nrows - 1);
            for (int r = 0; r < nrows; r++) {
                totalHeight = totalHeight + rowHeight[r];
            }
            int totalWidth = colWidth[0] + colWidth[1] + colWidth[2];

            // adjust the width of the second column to use up all of parent
            int available = parent.getWidth() - insets.left - insets.right - labelGap - buttonGap;
            colWidth[1] = colWidth[1] + (available - totalWidth);

            // *** DO THE LAYOUT ***
            int x = insets.left;
            for (int c = 0; c < COLUMNS; c++) {
                int y = insets.top;
                for (int r = 0; r < nrows; r++) {
                    int i = r * COLUMNS + c;
                    if (i < ncomponents) {
                        Component component = parent.getComponent(i);
                        Dimension d = component.getPreferredSize();
                        int h = d.height;
                        int adjust = (rowHeight[r] - h) / 2;
                        parent.getComponent(i).setBounds(x, y + adjust, colWidth[c], h);
                    }
                    y = y + rowHeight[r] + vGap;
                }
                x = x + colWidth[c];
                if (c == 0) {
                    x = x + labelGap;
                }
                if (c == 1) {
                    x = x + buttonGap;
                }
            }

        }

    }

    /**
     * Not used.
     *
     * @param comp  the component.
     */
    public void addLayoutComponent(Component comp) {
    }

    /**
     * Not used.
     *
     * @param comp  the component.
     */
    public void removeLayoutComponent(Component comp) {
    }

    /**
     * Not used.
     *
     * @param name  the component name.
     * @param comp  the component.
     */
    public void addLayoutComponent(String name, Component comp) {
    }

    /**
     * Not used.
     *
     * @param name  the component name.
     * @param comp  the component.
     */
    public void removeLayoutComponent(String name, Component comp) {
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久网| 日韩午夜激情av| 欧美亚洲国产怡红院影院| 日韩一区二区三区视频| 国产精品久久久久久亚洲伦| 日韩综合一区二区| 一本大道久久a久久综合婷婷| 欧美不卡123| 亚洲午夜久久久久久久久电影院| 成人国产亚洲欧美成人综合网| 日韩三级视频在线观看| 一区二区三区国产豹纹内裤在线| 黄页网站大全一区二区| 欧美日韩一二区| 国产日韩av一区二区| 中文字幕日韩欧美一区二区三区| 麻豆精品新av中文字幕| 久久久久久久久99精品| 午夜精品视频在线观看| 91丨porny丨户外露出| 欧美国产欧美综合| 国产一区欧美二区| 精品国产一区二区亚洲人成毛片| 日韩国产欧美在线视频| 欧美裸体一区二区三区| 亚洲高清视频的网址| 在线一区二区观看| 亚洲人成亚洲人成在线观看图片| 97精品超碰一区二区三区| 中文字幕成人在线观看| 成人动漫一区二区三区| 欧美韩日一区二区三区四区| 国产精品伊人色| 亚洲国产高清在线观看视频| 成人手机电影网| 中文字幕精品一区二区精品绿巨人 | 精品捆绑美女sm三区| 久久精品久久综合| 精品国产免费一区二区三区四区| 六月丁香婷婷色狠狠久久| 欧美mv日韩mv| 成人精品小蝌蚪| 亚洲欧美日本在线| 欧美日韩dvd在线观看| 日本va欧美va精品| 久久久不卡影院| 337p亚洲精品色噜噜噜| 六月婷婷色综合| 欧美高清在线视频| 在线观看三级视频欧美| 日韩国产高清影视| 久久蜜臀中文字幕| 色狠狠一区二区三区香蕉| 天天影视涩香欲综合网| 国产亚洲1区2区3区| 91色九色蝌蚪| 蜜臀av性久久久久蜜臀aⅴ | 精品一区二区三区免费| 国产三区在线成人av| 色老综合老女人久久久| 美腿丝袜一区二区三区| 国产精品全国免费观看高清 | 中文字幕av资源一区| 在线一区二区三区做爰视频网站| 日韩激情中文字幕| 国产精品亲子伦对白| 欧美日韩不卡一区二区| 粉嫩av一区二区三区在线播放| 亚洲一区二区在线播放相泽| 精品福利一二区| 在线亚洲高清视频| 精品国产91洋老外米糕| 五月天精品一区二区三区| 欧美v日韩v国产v| aaa国产一区| 首页综合国产亚洲丝袜| 国产精品高潮呻吟| 日韩一本二本av| 色综合中文字幕国产 | 91精品蜜臀在线一区尤物| 国产麻豆精品视频| 五月激情丁香一区二区三区| 国产免费成人在线视频| 日韩一区二区视频| 色偷偷久久一区二区三区| 国产精品一线二线三线| 日韩电影免费在线看| 亚洲激情校园春色| 国产女人18水真多18精品一级做| 欧美一卡2卡三卡4卡5免费| 在线观看视频91| 99久久亚洲一区二区三区青草| 国产真实乱对白精彩久久| 日本不卡视频在线| 亚洲午夜久久久久久久久久久 | 首页国产欧美日韩丝袜| 亚洲日本青草视频在线怡红院 | 欧美α欧美αv大片| 99v久久综合狠狠综合久久| 国产在线麻豆精品观看| 日本中文字幕不卡| 日韩精品每日更新| 亚洲va韩国va欧美va精品| 亚洲免费观看在线视频| 国产精品美女久久福利网站| 久久精品一区蜜桃臀影院| 精品国产乱码久久久久久久| 日韩亚洲电影在线| 日韩午夜电影在线观看| 日韩精品一区二区三区蜜臀| 欧美一区二区久久| 国产91精品久久久久久久网曝门| 久久久久久久久一| 久久蜜桃香蕉精品一区二区三区| 在线观看91视频| 99re在线精品| 在线观看日韩高清av| 欧美日韩一二三| 亚洲日本一区二区三区| 18成人在线观看| 亚洲天天做日日做天天谢日日欢| 亚洲色大成网站www久久九九| 一区在线观看免费| 亚洲综合一区二区| 亚洲国产毛片aaaaa无费看| 亚洲一区二区三区四区在线| 日韩精品1区2区3区| 精品一区二区三区免费毛片爱| 国产剧情在线观看一区二区| 国产成人精品1024| 在线观看av一区二区| 欧美一区二区不卡视频| 亚洲精品一区二区三区99| 国产欧美日韩视频在线观看| 综合色中文字幕| 性久久久久久久久| 精品中文av资源站在线观看| 懂色av一区二区三区免费看| 一本色道久久综合亚洲精品按摩| 欧美日韩国产另类不卡| 久久亚洲精精品中文字幕早川悠里| 国产精品免费aⅴ片在线观看| 亚洲精品国产a久久久久久| 久久精品国产澳门| 91在线云播放| 欧美电影精品一区二区| 中文字幕一区二区在线观看| 亚洲成人在线观看视频| 国产酒店精品激情| 91精品福利视频| 日韩美女视频在线| 亚洲激情自拍偷拍| 欧美日韩视频不卡| 久久精品一区八戒影视| 亚洲动漫第一页| 成人一区在线观看| 欧美日本不卡视频| 成人欧美一区二区三区1314| 免费观看在线综合| 日本道精品一区二区三区| 久久一区二区视频| 午夜精品久久久久久久99樱桃| 国产91丝袜在线播放0| 欧美乱妇15p| 亚洲人午夜精品天堂一二香蕉| 久久99国产精品麻豆| 91黄色激情网站| 欧美激情一区二区三区蜜桃视频| 日本中文一区二区三区| 色嗨嗨av一区二区三区| 亚洲国产高清aⅴ视频| 另类小说欧美激情| 欧美精品在线视频| 亚洲色欲色欲www| 大白屁股一区二区视频| 精品国产91久久久久久久妲己| 亚洲成人精品影院| 在线视频国内自拍亚洲视频| 国产精品久久久久久久久搜平片 | 欧美精品tushy高清| 亚洲另类色综合网站| 日韩视频在线一区二区| 亚洲午夜免费视频| 99久久er热在这里只有精品15 | 亚洲高清免费视频| 91老师国产黑色丝袜在线| 国产精品久久综合| 国产盗摄一区二区| 久久日韩精品一区二区五区| 久久超级碰视频| 欧美成人免费网站| 激情综合亚洲精品| 久久人人爽爽爽人久久久| 久久99精品久久久久| 欧美成人欧美edvon| 蜜桃视频在线一区| 日韩欧美在线一区二区三区| 蜜臀国产一区二区三区在线播放 | 国产综合色视频| www国产成人免费观看视频 深夜成人网|