GridLayout的风格

GridLayout类提供了GridLayout 布局中划分网格的信息,主要通过以下几个参数进行设置。

属性:

NumColumns:通过“gridLayout.numColumns”属性可以设置父组件中分几列显示子组件。

MakeColumnsEqualWidth:通过“gridLayout. makeColumnsEqualWidth”属性可以设置父组件中子组件是否有相同的列宽,当MakeColumnsEqualWidth为true时表示每列的列宽相等。

MarginLeft:表示当前组件距离父组件左边距的像素点个数。

MarginRight:表示当前组件距离父组件右边距的像素点个数。 
MarginTop:表示当前组件距离父组件上边距的像素点个数。 
MarginBottom:表示当前组件距离父组件下边距的像素点个数。 
HorizontalSpacing:表示子组件的水平间距。 
VerticalSpacing:表示子组件的垂直间距。

GridData的相关属性 

GridLayout布局的灵活之处在于它利用网格布局数据GridData。通过GridData可以设置子组件在网格中的填充方式、大小边距等信息,用户可以通过子组件的setLayoutData方法设置网格布局数据。

GridData可以控制子组件在网格中的位置大小等相关显示信息。GridData可以设置如下的一些属性。

属性:

HorizontalAlignment:表示水平对齐方式。 
VerticalAlignment:表示子组件的垂直对齐方式,值和水平方式一样。 
HorizontalIndent:表示子组件水平偏移多少像素。此属性和“horizontalAlignment = GridData.BEGINNING”属性一起使用。 
HorizontalSpan:表示组件水平占据几个网格。 
GrabExcessHorizontalSpace:表示当父组件大小改变时,子组件是否以水平方向抢占空间。 
GrabExcessVerticalSpace:表示当父组件大小改变时,子组件是否以垂直方向抢占空间。 
WidthHint:表示子组件的宽度为多少像素(前提是未设置其他相关属性)。 
HeightHint:表示子组件的高度为多少像素(前提是未设置其他相关属性)。

另外,GridData可以通过构造函数指定相应的属性值,有兴趣的读者可以参考GridData类的构造函数。

import org.eclipse.swt.SWT;

public class GridLayoutDemo {

    public static void main(String[] args) {

        Display display = new Display(new DeviceData());

        System.out.println(display.getBounds().width);

        Shell shell = new Shell(display);

        shell.setSize(500, 400);

        GridLayout gridLayout = new GridLayout(); // 定义一个GridLayout对象

        gridLayout.numColumns = 6; // 设定GridLayout对象的列数

        shell.setLayout(gridLayout); // 设定shell的排列方式

        GridData gridData; // 声明一个GridData对象

        Text text1 = new Text(shell, SWT.NONE);

        text1.setText("1");

        gridData = new GridData(GridData.VERTICAL_ALIGN_FILL);
/**
* 定义一个
*
* /*gridData的类型,其中VERTICAL_ALIGN_FILL代表垂直方向按单
*
* /*元格拉伸对齐。下面的HORIZONTAL_ALIGN_FILL代表在水平方向上
*
* /*按单元格拉伸对其,而FILL_BOTH代表双向拉伸充满。当然还有水/*平方向上的FILL_HORIZONTAL等。
**/ gridData.verticalSpan = 2;// 设置垂直方向所占用的单元格数 text1.setLayoutData(gridData); // 设置Text对象的GridData Text text2 = new Text(shell, SWT.NONE); text2.setText("2"); gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gridData.horizontalSpan = 5; text2.setLayoutData(gridData); Text text3 = new Text(shell, SWT.NONE); text3.setText("3"); gridData = new GridData(GridData.FILL_BOTH); gridData.horizontalSpan = 4; // 设置水平方向上所占用的单元格数 text3.setLayoutData(gridData); Text text4 = new Text(shell, SWT.NONE); text4.setText("4"); gridData = new GridData(GridData.VERTICAL_ALIGN_FILL); gridData.verticalSpan = 2; text4.setLayoutData(gridData); Text text5 = new Text(shell, SWT.NONE); text5.setText("5"); gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gridData.horizontalSpan = 5; text5.setLayoutData(gridData); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }

注意:如果将gridLayout这个布局设置给Composite组件的时候,需要调用composite的layout方法,否则布局无法显示。

GridLayout and GridData的更多相关文章

  1. SWT中的GridLayout(转)例子不错

    GridLayout 是一个非常强大的布局管理器,它可以实现很多复杂的布局,名字中暗示它将所有控件放置在类似网格的布局中.^__^GridLayout 有两个构造函数. GridLayout的构造函数 ...

  2. 关于SWT中的GridLayout布局方式

    GridLayout 布局的功能非常强大,也是笔者常用的一种布局方式.GridLayout是网格式布局,它把父组件分成一个表格,默认情况下每个子组件占据一个单元格的空间,每个子组件按添加到父组件的顺序 ...

  3. SWT的GridData一些参数的图示

    1. 参数:verticalSpan GridData gridData=new GridData(); gridData.verticalSpan=100; final Text nameText= ...

  4. GridLayout 使用

    上次做了一个小键盘,请见:PopupWindow 使用. 效果是这样的: 可以看到,上面的按键是不一样大小的.因为是用LinearLayout布局,用的Button样式也是默认的.数字键和文字键的大小 ...

  5. GridLayout自定义数字键盘(两个EditText)

    功能说明: 适用于两个EditText输入框,并控制输入字符的长度,点击键盘中的"确定"按钮完成输入,点击"前一项"光标跳到前一个EditText 运行效果图如 ...

  6. 浅谈GridLayout(网格布局)

    Android 4.0 布局-->GridLayout 网格布局 以行列单元格的形式展示内部控件排列,可以实现类似计算机键盘效果 ,也可以实现可自动变行的标签群效果 使用GridLayout , ...

  7. Android中帧布局-FrameLayout和网格布局-GridLayout

    帧布局-FrameLayout 一.概念 帧布局中,容器为每个加入其中的空间创建一个空白的区域(成为一帧).每个空间占据一帧,这些帧会按gravity属性自动对齐. 帧布局的效果是将其中的所有空间叠加 ...

  8. 4.0以后的新布局方式GridLayout

    <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android=" ...

  9. Android 布局之GridLayout

    Android 布局之GridLayout 1 GridLayout简介 GridLayout是Android4.0新提供的网格矩阵形式的布局控件. GridLayout的继承关系如下:java.la ...

随机推荐

  1. 【需要重新整理】【mongoDB】mongoDB初见笔记

    A安装(windows版): 1.官网下载安装文件 2.解压 3.配置环境变量 4.win+r cmd>打开控制台配置仓库路径 5.mongod --dbpath=d:/bigMongo//启动 ...

  2. php防注入xss攻击

    <?php //php防注入和XSS攻击通用过滤. //by qq:831937 $_GET && SafeFilter($_GET); $_POST && Sa ...

  3. while循环语句、格式化输出、常用运算符、字符编码

    1.while循环 while 空格 条件 冒号 缩进 循环体 num=1 while num<11: print(num) num=num+1 变量都是先执行等号右边的,然后执行等号左边的. ...

  4. Java 添加、读取、删除PPT文档属性

    文档属性是一些描述性的信息,它未包含在文件的实际内容中,但提供了有关文件的信息,可用来帮助查找和整理文件.以下示例中将介绍通过Java程序来添加PPT文档属性.读取.删除PPT文档中已有属性的方法. ...

  5. Python基础-使用range创建数字列表以及简单的统计计算和列表解析

    1.使用函数 range() numbers = list(range[1,6]) print (numbers) 结果: [1,2,3,4,5] 使用range函数,还可以指定步长,例如,打印1~1 ...

  6. Nginx运行报错unknown directive ""

    使用文本编辑器把编码格式修改为UTF-8即可. 推荐文本编辑器:notepad++,自行百度搜索即可下载

  7. 简单说一下SS的原理

    假设有主机A和B还有C.主机A是客户机,就是你的电脑,主机B是服务器,也就是位于日本的那台电脑.主机C是你需要访问的网站.在没有SS的情况下,数据传输的流程是:A-->C.在有SS的情况下,概括 ...

  8. 成功解决 org.mybatis.spring.MyBatisSystemException问题!!

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingExce ...

  9. 使用wincc vbs脚本查找进程及如何运行进程

    使用vbs代码查看某个进程是否在运行,本文要检查的进程名为 QRscan.exe,其代码如下: sub CheckProcess Dim WMI,Objs,Process,ObjSet WMI=Get ...

  10. MLlib特征变换方法

    Spark1.6.2.2.3 PCA 算法介绍: 主成分分析是一种统计学方法,它使用正交转换从一系列可能相关的变量中提取线性无关变量集,提取出的变量集中的元素称为主成分.使用PCA方法可以对变量集合进 ...