SWT:网格式布局

public static void showGridLayout(Shell shell) {
  GridLayout gridLayout = new GridLayout();
  // 设置网格的列数
  gridLayout.numColumns = 3;
  // 设置网格等宽
  gridLayout.makeColumnsEqualWidth = true;
  // 设置补白与间隔
  gridLayout.verticalSpacing = 10; // 垂直间隔
  gridLayout.horizontalSpacing = 10; // 水平间隔

  shell.setLayout(gridLayout);
  new Button(shell, SWT.PUSH).setText("B1");
  new Button(shell, SWT.PUSH).setText("Wide Button 2");
  new Button(shell, SWT.PUSH).setText("Button 3");
  new Button(shell, SWT.PUSH).setText("B4");
  new Button(shell, SWT.PUSH).setText("Button 5");
  new Button(shell, SWT.PUSH).setText("B6");

  // 使用GridData对象
  // 方法一
  Button button1 = new Button(shell, SWT.PUSH);
  button1.setText("Button");
  GridData gridData = new GridData(); // 创建GridData对象
  gridData.horizontalAlignment = GridData.FILL; // 设置水平填充方式为充满单元格
  gridData.grabExcessHorizontalSpace = true; // 设置水平抢占空间的方式
  // 设置单元格对齐方式
  // 设置水平方向的对齐
  gridData.horizontalAlignment = SWT.BEGINNING | SWT.LEFT; // 左对齐,默认为SWT.BEGINNING
  // SWT.CENTER:水平居中
  // SWT.END;或 SWT.RIGHT 右对齐
  // SWT.FILL 水平充满整个单元格

  // 垂直对齐方式 默认为SWT.CENTER
  gridData.verticalAlignment = SWT.CENTER;
  // SWT.BEGINNING 或者 SWT.TOP 上对齐
  // SWT.CENTER 垂直居中
  // SWT.END 或者 SWT.BOTTOM 下对齐
  // SWT.FILL 垂直充满整个单元格

  //设置缩进大小
  gridData.horizontalIndent = 20; //设置水平缩进为20像素大小
  gridData.verticalIndent = 20; //设置垂直方向缩进的像素大小
  
  //设置单元格跨行和跨列显示
  gridData.horizontalSpan = 2; //设置水平跨越两个单元格
  gridData.horizontalAlignment = SWT.FILL;
  
  gridData.verticalSpan = 2;  //设置垂直跨越两个单元格
  gridData.verticalAlignment = SWT.FILL;
  
  //设置单元格空间的抢占方式
  gridData.grabExcessVerticalSpace = true; //设置垂直抢占
  gridData.grabExcessHorizontalSpace = true; //设置水平抢占
  
  //设置控件大小
  //此属性仅当 grabExcessVerticalSpace grabExcessHorizontalSpace 为 true 时才生效
  gridData.minimumHeight = 100; //显小高度
  gridData.minimumWidth = 100; //最小宽度
  button1.setLayoutData(gridData);

  //设置控件大小 会随着窗口的变化而变化,只是在初始时起作用
  gridData.widthHint = 100; //设置宽度
  gridData.heightHint = 100; //设置高度

  //使用GridData对象
  // 方法二
  Button button2 = new Button(shell, SWT.PUSH);
  button2.setText("Button");
  button2.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
    | GridData.GRAB_HORIZONTAL));// 使用常量方式创建,与方法一的作用相同
  button2.setLayoutData(gridData); // 设置按钮的布局数据

  shell.open();
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值