/** * 子组件将在父组件上一行或多行显示(设置相对应的属性,子组件会自动换行) * 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(); }
初学SWT之布局应用
这次做下简单的笔记,SWT布局:RowLayout 和 GridLayout
猜你喜欢
转载自zengjz88.iteye.com/blog/1513732
今日推荐
周排行