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

类别:Java 点击:0 评论:0 推荐:

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写的样式

本文地址:http://com.8s8s.com/it/it14065.htm