初学SWT之布局应用
这次做下简单的笔记,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();}