14.11 GridLayout 布局 GridLayout 布局的功能非常强大,也是笔者常用的一种布局方式。GridLayout是网格式布局,它把父组件分成一个表格,默认情况下每个子组件占据一个单元格的空间,每个子组件按添加到父组件的顺序排列在表格中。 GridLayout提供了很多的属性,可以灵活设置网格的信息。另外,GridLayout 布局提供了GridData类,子组件可以设置相应的GridData,例如“dogPhoto.setLayoutData(gridData)”,GridData可以设置每个组件当做单元格的信息。 14.11.1 GridLayout 的风格 GridLayout类提供了GridLayout 布局中划分网格的信息,主要通过以下几个参数进行设置。 l Nu mColu mns:通过“gridLayou t.nu mColu mns”属性可以设置父组件中分几列显示子组件,如表14-4 所示。 表14-4 Nu mColu mns 效果 列 数 显 示 效 果 nu mColu mns = 1 nu mColu mns = 2 nu mColu mns = 3 l MakeColu mnsEqu alWidth:通过“gridLayou t. makeColu mnsEqu alWidth”属性可以设置父组件中子组件是否有相同的列宽,当 MakeColu mnsEqu alWidth 为 true 时表示每列的列宽相等。 l MarginLeft: 表示当前组件距离父组件左边距的像素点个数。 l MarginRight:表示当前组件距离父组件右边距的像素点个数。 l MarginTop: 表示当前组件距离父组件上边距的像素点个数。 l MarginBottom:表示当前组件距离父组件下边距的像素点个数。 l HorizontalSpacing:表示子组件的水平间距。 l VerticalSpacing:表示子组件的垂直间距。 14.11.2 GridData 的相关属性 GridLayout布局的灵活之处在于它利用网格布局数据GridData。通过GridData可以设置子组件在网格中的填充方式、大小边距等信息,用户可以通过子组件的setLayoutData方法设置网格布局数据。 GridData 可以控制子组件在网格中的位置大小等相关显示信息。GridData 可以设置如下的一些属性。 l HorizontalAlignment:表示水平对齐方式。水平对齐方式有如下几种,如表14-5 所示,其中“Button5”按钮显示了水平对齐的方式。 表14-5 组件水平对齐方式 HorizontalAlignment 的值 显 示 效 果 horizontalAlignment = GridData.BEGINNING(default) horizontalAlignment = GridData.CENTER horizontalAlignment = GridData.END horizontalAlignment = GridData.FILL l VerticalAlignment:表示子组件的垂直对...