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

📄 flowlayout.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
/** * * Copyright (c) 1998 *      Transvirtual Technologies, Inc.  All rights reserved. * * See the file "license.terms" for information on usage and redistribution * of this file. * */package java.awt;public class FlowLayout  implements LayoutManager, java.io.Serializable{	/* XXX implement serial form! */	private static final long serialVersionUID = -7262534875583282631L;	final public static int LEFT = 0;	final public static int CENTER = 1;	final public static int RIGHT = 2;	final public static int LEADING = 3;	final public static int TRAILING = 4;	int align;	int hgap;	int vgap;public FlowLayout() {	this(CENTER, 5, 5);}public FlowLayout( int align) {	this( align, 5, 5);}public FlowLayout( int align, int hgap, int vgap) {	this.align = align;	this.hgap  = hgap;	this.vgap  = vgap;}public void addLayoutComponent( String name, Component comp) {}private int alignComps( Container target, int start, int end, int w, int y) {	Insets in = target.getInsets(); // getInsets() might be reimplemented (swing)	int wm = target.width - in.left - in.right;	int startx;	int hMax = 0;	if ( align == CENTER) {		startx = in.left + (wm - w)/2;	}	else if ( align == RIGHT) {		startx = wm - w;	}	else {		startx = in.left + hgap;	} 	for ( int i = start; i <= end; i++) {		Component c = target.getComponent(i);		if ( c.height > hMax ) {			hMax = c.height;		}		c.setLocation(startx, y);		startx += c.width + hgap;	}	return (hMax + vgap);}public int getAlignment() {	return align;}public int getHgap() {	return hgap;}public int getVgap() {	return vgap;}public void layoutContainer( Container target) {	Insets in = target.getInsets(); // getInsets() might be reimplemented (swing)	int mw = target.width - in.left - in.right;	int width = hgap;	int ypos = vgap + in.top;	int rowfirst = 0;	int cc = target.getComponentCount();	for ( int i = 0; i < cc; i++) {		Component c = target.getComponent(i);		if ( (c.flags & Component.IS_VISIBLE) == 0 ) {			continue;		}		c.setSize( c.getPreferredSize() );		if (width + c.width + hgap <= mw) {			width += c.width + hgap;		}		else {			if (i == rowfirst) {	 //single component too wide				c.setBounds( in.left + hgap, ypos, mw - 2*hgap, c.height);				rowfirst++;				ypos += c.height + vgap;			}			else {				ypos += alignComps( target, rowfirst, i-1, width, ypos);				rowfirst = i;				i--;			}			width = hgap;		}	}	alignComps( target, rowfirst, cc-1, width, ypos);}public Dimension minimumLayoutSize( Container parent) {	return preferredSize( parent, true);}public Dimension preferredLayoutSize( Container parent) {	return preferredSize( parent, false);}private Dimension preferredSize( Container parent, boolean min) {	int w = 0;	int h = 0;	int cc = parent.getComponentCount();	for ( int i=0; i<cc; i++) {		Component c = parent.getComponent(i);		if ( (c.flags & Component.IS_VISIBLE) != 0 ) {			Dimension dc = min ? c.getMinimumSize() : c.getPreferredSize();			w += dc.width + hgap;			if ( h < dc.height) {				h = dc.height;			}		}	}	Insets in = parent.getInsets(); // getInsets() might be reimplemented (swing)	w += in.left + in.right + hgap;	h += in.top + in.bottom + 2*vgap;	return new Dimension( w, h);}public void removeLayoutComponent( Component comp) {}public void setAlignment( int align) {	this.align = align;}public void setHgap( int hgap) {	this.hgap = hgap;}public void setVgap( int vgap) {	this.vgap = vgap;}public String toString() {	String s = getClass().getName() + ",vgap=" + vgap + ",hgap=" + hgap + ",align=";	switch( align) {	case LEFT:   s += "left";   break;	case CENTER: s += "center"; break;	case RIGHT:  s += "right";  break;	}	return s;}}

⌨️ 快捷键说明

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