JAVA.SWTJFace RCP应用篇之Eclipse表单(三).pdf
文本预览下载声明
Eclipse SWT/JFACE 核心应用》 清华大学出版社 24 Eclipse 表单
24.4.1 格布局(TableWrapLayout)
表格布局(TableWrapLayout)是基于网格的布局,它与 SWT 的通用 GridLayout 非常
类似,不同之处在于,布局规则更类似于 HTML 中的布局算法,可以支持文本的自动换行。
下面来比较一下 GridLayout 与 TableWrapLayout 两种布局的效果:
通过两种布局的比较可以看出,TableWrapLayout 可以将超出的文本折行显示,这是在
GridLayout 中所不能实现的。
与 GridLayout 对应的 GridData 类似,TableWrapLayout 对应 TableWrapData。下面
就以一个复杂的示例程序来说明如何使用 TableWrapLayout 进行布局设置。
package com.testrcp.myrcp.forms;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Label;
//import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
public class FirstPage extends FormPage {
public static final String ID = com.testrcp.myrcp.forms.FirstPage;
public FirstPage(FormEditor editor) {
// 构造 法,设置Form 页的ID 和名称
super(editor, ID, 第一页);
}
// 覆盖父类中的 法
// 在该 法中创建表单区域的各种控件
protected void createFormContent(IManagedForm managedForm) {
// 通过managedForm 对象获得表单工具对象
FormToolkit toolkit = managedForm.getToolkit();
// 通过managedForm 对象获得ScrolledForm 可滚动的表单对象
ScrolledForm form = managedForm.getForm();
// 设置表单文本
form.setText(这是第一页,Hello, Eclipse 表单);
// 创建表格布局
TableWrapLayout layout = new TableWrapLayout();
layout.numColumns = 2;// 表格的列数
layout.bottomMargin = 10;// 下补白
layout.topMargin = 10;// 上补白
layout.leftMargin = 10;// 左补白
layout.rightMargin = 10;// 右补白
form.getBody().setLayout(layout);// 设置表格的布局
// 创建第一个标签
@SuppressWarnings(unused)
Label l1 = toolkit.createLabel(form.getBody(), 这是很长的一段文本文本1,
SWT.WRAP);
// 创建第二个标签
Label l2 = toolkit.createLabel(form.getBody(), 这是文本2, SWT.WRAP);
显示全部