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. Python开发【第九篇】: 并发编程

    内容概要 操作系统介绍 进程 线程 协程 二. 进程 python并发编程之多进程理论部分 在python程序中的进程操作 运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...

  2. shell 循环打印某一天后的n天的日期

    #!/bin/bash start_date="2017-10-26" for i in `seq 0 30` do num=$((${i}+1)) datatime=`date ...

  3. Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包(免费赠送)+崔庆才

    Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包+崔庆才 下载: 链接:https://pan.baidu.com/s/1H-VrvrT7wE9-CW2Dy2p0qA 提取码:35go ...

  4. 【JavaScript】深入理解call,以及与apply、bind的区别

    一.call call有两个妙用 1.继承(我前面的文章有提到用call实现call继承,有兴趣可以看下.https://www.cnblogs.com/pengshengguang/p/105476 ...

  5. .net core2学习笔记

    在Linux上安装完netcore的sdk后,发现每次重新登录dotnet命令都会失效,咨询完同事后才知道之前的设置只是临时变量,需要vim /etc/profile   编辑这个文件,把环境变量写入 ...

  6. 9.5 考试 第三题 奇袭题解(codeforce 526f)

    问题 C: 奇袭 时间限制: 1 Sec  内存限制: 256 MB 题目描述 由于各种原因,桐人现在被困在Under World(以下简称UW)中,而UW马上 要迎来最终的压力测试——魔界入侵. 唯 ...

  7. Gin 框架 - 安装和路由配置

    目录 概述 Gin 安装 路由配置 推荐阅读 概述 看下 Gin 框架的官方介绍: Gin 是一个用 Go (Golang) 编写的 web 框架. 它是一个类似于 martini 但拥有更好性能的 ...

  8. 基础篇-1.2Java世界的规章制度(上)

    1 Java标识符 在Java语言中,有类.对象.方法.变量.接口和自定义数据类型等等,他们的名字并不是确定的,需要我们自己命名.而Java标识符就是用来给类.对象.方法.变量.接口和自定义数据类型命 ...

  9. Dom4J的基本使用

    初始化数据 <?xml version="1.0" encoding="UTF-8"?> <RESULT> <VALUE> ...

  10. WinForm控件之【CheckBox】

    基本介绍 复选框顾名思义常用作选择用途,常见的便是多选项的使用: 常设置属性.事件 Checked:指示组件是否处于选中状态,true为选中处于勾选状态,false为未选中空白显示: Enabled: ...