初学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();
	}

猜你喜欢

转载自zengjz88.iteye.com/blog/1513732
swt