一个功能强大的JAVA格状布局管理器

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

MutableGridLayout是一个功能强大的JAVA界面网格布局。

基本的布局为n行m列,行间距和列间距为xGap,yGap,可以通造构造方法 new MutableGridLayout(int cols,int rows,int xgap,int xgap)来进行构造。

每行(列)的宽度(高度)可以通过setWidth(int num,double value)(setHeight(int num,double value))来进行每行(列)的宽度(高度)设定,如果值大于1则认为是绝对宽度,如果小于1则认为是比例,布局管理器会依此设置每行(列)的宽(高)度。

当一个基本布局完成后可以通getBox(int col,int row)来获取相应的格。

获取格后可以用split(int row,int col)或split(int row ,int col,int xGap,int yGap)来进行切分网格,也可以使用merge(int startX,int startY,int endX,int endY)把多个单元格进行合。

基本布局经过各种切分和合并后,只要把Container的Layout设成该布局,该布局会根据控件加进Container的顺序依从左到右,从上到下的顺序进行布局。

每格可以组件填充方式可以通过setFill来设置成扩充到全格或组件最佳尺寸两种方式。组件和网格之间的水平对齐方式有LEFT/CENTER/RIGHT,垂直对齐方式有TOP/MIDDLE/BOTTOM。并且格子可以设置成空setBlank(true),即组件不放到该格。

下文是一段调用的源代码,可以作为参考:

/*

* Created on 2004-10-27

*/

package com.fswan.memo;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.border.AbstractBorder;

import org.fswan.ui.MutableGridLayout;

/**

* @author Swan Fong(方志文)

*

* MutableGridLayout布局的样例程序

*/

public class TestLayout

{

public static void main(String[] args)

{

JFrame jf = new JFrame("Test Layout");

MutableGridLayout ml = new MutableGridLayout(3,4,5,5);

ml.getBox(1,1).split(2,3,10,10);

ml.getBox(2,2).setBlank(true);

ml.merge(0,2,1,3);

ml.getBox(0,2).split(3,3);

ml.getBox(0,2).getBox(0,0).split(2,2);

ml.setWidth(2,87);

ml.getBox(2,0).setFill(MutableGridLayout.PREFERRED);

ml.getBox(2,0).setAlign(MutableGridLayout.CENTER);

ml.getBox(2,0).setValign(MutableGridLayout.MIDDLE);

jf.getContentPane().setLayout(ml);

for (int i = 0; i < 30; i++)

{

jf.getContentPane().add(new JButton("Button"+i));

}

AbstractBorder d;

jf.setSize(640,480);

jf.setVisible(true);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

以下是一个我和MutableGridLayout写的样式

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航