这次做下简单的笔记,SWT布局:RowLayout 和 GridLayout
/**
* 子组件将在父组件上一行或多行显示(设置相对应的属性,子组件会自动换行)
* RowLayout常用属性
* Wrap:子组件是否自动换行
* pack:子组件是否保持原有大小
* justify:子组件是否根据父组件信息做调整
* spacing:表示子组件之间的间距像素点个数
*/
public static void createRow(){
shell.setText("Test RowLayout");
//默认是横向布局
RowLayout row = new RowLayout(/*SWT.VERTICAL*/);
row.wrap = true;//自动换行
row.pack = true;//子组件是否保持原有大小
row.justify = true;//子组件是否根据父组件信息做调整
row.spacing = 20;//表示子组件之间的间距像素点个数
shell.setLayout(row);
Label label = new Label(shell, SWT.NONE);
label.setText("这是一条的数据");
Button but = new Button(shell, SWT.NONE);
but.setText("这是一个普通按钮");
Button but1 = new Button(shell, SWT.CHECK);
but1.setText("这是一个多选按钮");
Button but2 = new Button(shell, SWT.RADIO);
but2.setText("这是一个单选按钮");
shell.pack();
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
/**
* GridLayout 是一个网络格式布局,把父组件分成一个表格,
* 子组件占据一个单元的空间,每个组件按添加到父组件的顺序排列在表格中
* 常用属性:
* horizontalSpacing:子组件的行间距
* verticalSpacing:列间距
* numColumns:多少列 默认是1列
* makeColumnsEqualWidth:设置父组件中子组件的宽度是否相同
*/
public static void createGrid(){
shell.setText("Grid Layout");
//设置为2列,并设置父组件中子组件的宽度相同
GridLayout grid = new GridLayout(2, true);
grid.marginTop = 20;
grid.marginLeft = 20;
grid.horizontalSpacing = 10;
grid.verticalSpacing = 10;
shell.setLayout(grid);
Label label = new Label(shell, SWT.NONE);
GridData data1 = new GridData(GridData.FILL_HORIZONTAL);
data1.horizontalSpan = 2;//跨2列
label.setLayoutData(data1);
label.setText("这是一条的数据");
Button but = new Button(shell, SWT.NONE);
GridData data2= new GridData(GridData.FILL_HORIZONTAL);
data2.verticalSpan = 2;//跨2行
but.setLayoutData(data2);
but.setText("这是一个普通按钮");
Button but1 = new Button(shell, SWT.CHECK);
but1.setText("这是一个多选按钮");
Button but2 = new Button(shell, SWT.RADIO);
but2.setText("这是一个单选按钮");
shell.pack();
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
}