Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
一个功能强大的JAVA格状布局管理器

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

基本的布局为nm列,行间距和列间距为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)把多个单元格进行合。

基本布局经过各种切分和合并后,只要把ContainerLayout设成该布局,该布局会根据控件加进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写的样式




相关文章

相关软件